<SEC-DOCUMENT>0000851205-19-000003.txt : 20190214
<SEC-HEADER>0000851205-19-000003.hdr.sgml : 20190214
<ACCEPTANCE-DATETIME>20190214160754
ACCESSION NUMBER:		0000851205-19-000003
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		144
CONFORMED PERIOD OF REPORT:	20181231
FILED AS OF DATE:		20190214
DATE AS OF CHANGE:		20190214

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

	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-20181231x10xk.htm
<DESCRIPTION>10-K
<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 2019 Workiva -->
		<title>Document</title>
	</head>
	<body style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s605F4C0C285A5959833B56A4527D7305"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:4px;text-align:center;font-size:11pt;"><font style="font-family:Arial;font-size:11pt;font-weight:bold;">UNITED STATES</font></div><div style="line-height:120%;text-align:center;font-size:11pt;"><font style="font-family:Arial;font-size:11pt;font-weight:bold;">SECURITIES AND EXCHANGE COMMISSION</font></div><div style="line-height:120%;text-align:center;font-size:11pt;"><font style="font-family:Arial;font-size:11pt;font-weight:bold;">Washington, D.C. 20549</font></div><div style="line-height:120%;text-align:center;font-size:22pt;"><font style="font-family:Arial;font-size:22pt;font-weight:bold;">FORM 10-K</font></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-style:italic;">(Mark One)</font></div><div style="line-height:120%;padding-top:2px;text-indent:32px;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">[ X ] Annual report pursuant to Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 for the fiscal year ended </font><font style="font-family:Arial;font-size:8pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:8pt;">&#32;or</font></div><div style="line-height:120%;padding-top:2px;text-indent:32px;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">[&#160;&#160;&#160;&#160;] Transition report pursuant to Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 for the transition period from </font><font style="font-family:Arial;font-size:8pt;text-decoration:underline;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</font><font style="font-family:Arial;font-size:8pt;">to</font><font style="font-family:Arial;font-size:8pt;text-decoration:underline;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</font><font style="font-family:Arial;font-size:8pt;">.</font></div><div style="line-height:120%;text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Commission File Number </font><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">001-34218</font></div><div style="line-height:120%;text-align:center;font-size:17pt;"><font style="font-family:Arial;font-size:17pt;font-weight:bold;text-decoration:underline;">COGNEX CORPORATION</font></div><div style="line-height:120%;padding-top:2px;text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-style:italic;">(Exact name of registrant as specified in its charter)</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Massachusetts&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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:9pt;"><font style="font-family:inherit;font-size:9pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">04-2713778&#160;&#160;&#160;&#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></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="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-style:italic;">(State or other jurisdiction of</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-style:italic;">incorporation or organization)</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:9pt;"><font style="font-family:inherit;font-size:9pt;">&#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:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-style:italic;">(I.R.S. Employer</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-style:italic;">Identification No.)</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></tr></table></div></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;"><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:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">One Vision Drive</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Natick,&#160;Massachusetts&#160;01760-2059</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(508) 650-3000</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="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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 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;"><font style="font-family:Arial;font-size:8pt;font-style:italic;">(Address, including zip code, and telephone number,</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-style:italic;">including area code, of principal executive offices)</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></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Securities registered pursuant to Section&#160;12(b) of the Act:</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="3"></td></tr><tr><td style="width:49%;"></td><td style="width:1%;"></td><td style="width:50%;"></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;"><font style="font-family:Arial;font-size:8pt;text-decoration:underline;">Title of Each Class</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:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;text-decoration:underline;">Name of Exchange on Which Registered</font></div></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;"><font style="font-family:Arial;font-size:8pt;">Common Stock, par value $.002 per share</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:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">The NASDAQ Stock Market LLC</font></div></td></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Securities registered pursuant to Section&#160;12(g) of the Act: None</font></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><font 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.</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: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;"><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:inherit;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:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Yes</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:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">X</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:inherit;font-size:8pt;">&#160;&#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:inherit;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="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">No</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:inherit;font-size:8pt;">&#160;&#160;</font></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;"><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:inherit;font-size:8pt;">&#160;&#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></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><font 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.</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: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;"><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:inherit;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:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Yes</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:inherit;font-size:8pt;">&#160;</font></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:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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:inherit;font-size:8pt;">&#160;&#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:inherit;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="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">No</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:inherit;font-size:8pt;">&#160;&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">X&#160;&#160;&#160;&#160;&#160;&#160;&#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:inherit;font-size:8pt;">&#160;&#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></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><font 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.</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: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;"><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:inherit;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:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Yes</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:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">X&#160;&#160;&#160;&#160;&#160;&#160;&#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:inherit;font-size:8pt;">&#160;&#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:inherit;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="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">No</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:inherit;font-size:8pt;">&#160;&#160;</font></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:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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:inherit;font-size:8pt;">&#160;&#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></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><font 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).</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: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;"><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:inherit;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:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Yes</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:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">X&#160;&#160;&#160;&#160;&#160;&#160;&#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:inherit;font-size:8pt;">&#160;&#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:inherit;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="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">No</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:inherit;font-size:8pt;">&#160;&#160;</font></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:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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:inherit;font-size:8pt;">&#160;&#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></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Indicate by check mark if disclosure of delinquent filers pursuant to Item&#160;405 of Regulation S-K is not contained herein, and will not be contained, to the best of the registrant&#8217;s knowledge, in definitive proxy or information statements incorporated by reference in Part III of this Form 10-K or any amendment to this Form 10-K.&#160;&#160;&#160;&#160;[&#160;&#160;X&#160;&#160;]</font></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><font 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):</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:98.4375%;border-collapse:collapse;text-align:left;"><tr><td colspan="3"></td></tr><tr><td style="width:57%;"></td><td style="width:1%;"></td><td style="width:42%;"></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;"><font style="font-family:Wingdings;font-size:9pt;">x</font><font style="font-family:Arial;font-size:9pt;">&#160;&#160;</font><font style="font-family:Arial;font-size:8pt;">Large&#160;accelerated&#160;filer</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="font-size:9pt;"><font style="font-family:Wingdings;font-size:9pt;">&#168;</font><font style="font-family:Arial;font-size:9pt;">&#160;&#160;</font><font style="font-family:Arial;font-size:8pt;">Accelerated filer</font></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;"><font style="font-family:Wingdings;font-size:9pt;">&#168;</font><font style="font-family:Arial;font-size:9pt;">&#160;&#160;</font><font style="font-family:Arial;font-size:8pt;">Non-accelerated filer</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;">(Do not check if a smaller reporting company)</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="font-size:9pt;"><font style="font-family:Wingdings;font-size:9pt;">&#168;</font><font style="font-family:Arial;font-size:9pt;">&#160;&#160;</font><font style="font-family:Arial;font-size:8pt;">Smaller&#160;reporting&#160;company</font></div><div style="font-size:9pt;"><font style="font-family:inherit;font-size:9pt;"><br></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="font-size:9pt;"><font style="font-family:Wingdings;font-size:9pt;">&#168;</font><font style="font-family:Arial;font-size:9pt;">&#160;&#160;</font><font style="font-family:Arial;font-size:8pt;">Emerging growth company</font></div><div style="font-size:9pt;"><font style="font-family:inherit;font-size:9pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><font 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. </font><font style="font-family:Wingdings;font-size:8pt;">o</font></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><font 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).</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: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;"><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:inherit;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:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Yes</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:inherit;font-size:8pt;">&#160;</font></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:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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:inherit;font-size:8pt;">&#160;&#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:inherit;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="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">No</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:inherit;font-size:8pt;">&#160;&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">X&#160;&#160;&#160;&#160;&#160;&#160;&#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:inherit;font-size:8pt;">&#160;&#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></tr></table></div></div><div style="line-height:120%;text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Aggregate market value of voting stock held by non-affiliates of the registrant as of </font><font style="font-family:Arial;font-size:9pt;">July&#160;1, 2018</font><font style="font-family:Arial;font-size:9pt;">: $</font><font style="font-family:Arial;font-size:9pt;">7,312,677,834</font><font style="font-family:Arial;font-size:9pt;">&#32;</font></div><div style="line-height:120%;text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Common stock, par value $.002 per share, outstanding as of </font><font style="font-family:Arial;font-size:9pt;">January&#160;27, 2019</font><font style="font-family:Arial;font-size:9pt;">: </font><font style="font-family:Arial;font-size:9pt;">170,831,424</font><font style="font-family:Arial;font-size:9pt;">&#32;shares</font></div><div style="line-height:120%;text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">DOCUMENTS INCORPORATED BY REFERENCE:</font></div><div style="line-height:120%;text-align:center;font-size:9pt;"><font 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 </font><font style="font-family:Arial;font-size:9pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:9pt;">. Portions of such Proxy Statement are incorporated by reference in Part&#160;III of this report.</font></div><div><br></div><hr style="page-break-after:always"><div><a name="s112319AD99495F35B3837C6A75C0D45B"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ANNUAL REPORT ON FORM 10-K</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">FOR THE YEAR ENDED DECEMBER 31, </font><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2018</font><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#32;</font></div><div style="line-height:120%;padding-top:24px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">INDEX</font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:inherit;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: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="#s18EC96939DCB5FA488E3BE7BDA041F0D"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;">PART I</font></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;"><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:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#s18EC96939DCB5FA488E3BE7BDA041F0D">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;"><font style="font-family:Arial;font-size:10pt;">ITEM 1.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s15956C36165A516391A7987CC6A90C99"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">BUSINESS</font></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="#s15956C36165A516391A7987CC6A90C99">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;"><font style="font-family:Arial;font-size:10pt;">ITEM 1A.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s9546906FCBB4503EA9DDCB9CCAA5764E"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">RISK FACTORS</font></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="#s9546906FCBB4503EA9DDCB9CCAA5764E">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;"><font style="font-family:Arial;font-size:10pt;">ITEM&#160;1B.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s15DADA0013755524BBB8AAFCA5E55736"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">UNRESOLVED STAFF COMMENTS</font></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="#s15DADA0013755524BBB8AAFCA5E55736">12</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;"><font style="font-family:Arial;font-size:10pt;">ITEM 2.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s7475235CE36A58718A125124977FD861"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">PROPERTIES</font></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="#s7475235CE36A58718A125124977FD861">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;"><font style="font-family:Arial;font-size:10pt;">ITEM 3.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s0A36B149555B5C7692FFA5C9D1F03430"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">LEGAL PROCEEDINGS</font></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="#s0A36B149555B5C7692FFA5C9D1F03430">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;"><font style="font-family:Arial;font-size:10pt;">ITEM 4.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s292D690CE0C4518BB18954D9F9320447"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">MINE SAFETY DISCLOSURES</font></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="#s292D690CE0C4518BB18954D9F9320447">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;"><font style="font-family:Arial;font-size:10pt;">ITEM 4A.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sD0F6C30BBE2D5ED6ACE29579B80F8BEC"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">EXECUTIVE OFFICERS OF THE REGISTRANT</font></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="#sD0F6C30BBE2D5ED6ACE29579B80F8BEC">13</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;"><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;height:20px;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;height:20px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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="#s2D218BC6BDF45329AF6EF5408601FA87"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;">PART II</font></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;"><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:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#s2D218BC6BDF45329AF6EF5408601FA87">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;"><font style="font-family:Arial;font-size:10pt;">ITEM 5.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s002CCE6D336F58819B174816A96D7FE2"><font 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</font></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="#s002CCE6D336F58819B174816A96D7FE2">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;"><font style="font-family:Arial;font-size:10pt;">ITEM 6.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s9424D6E1DAB05DA69A82CC61D3E60ABD"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">SELECTED FINANCIAL DATA</font></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="#s9424D6E1DAB05DA69A82CC61D3E60ABD">16</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;"><font style="font-family:Arial;font-size:10pt;">ITEM 7.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s9E72CE1127425F26B87B47BBF5FF8268"><font 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</font></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="#s9E72CE1127425F26B87B47BBF5FF8268">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;"><font style="font-family:Arial;font-size:10pt;">ITEM&#160;7A.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sA40BA4D0DF405803B0D40D77F04AA952"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</font></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="#sA40BA4D0DF405803B0D40D77F04AA952">29</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;"><font style="font-family:Arial;font-size:10pt;">ITEM 8.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s486A06BC79235CA2ACEEB970C9DCD899"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</font></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="#s486A06BC79235CA2ACEEB970C9DCD899">32</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;"><font style="font-family:Arial;font-size:10pt;">ITEM 9.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sAADC8BDF67795A0EB146C8281A4932EF"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE</font></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="#sAADC8BDF67795A0EB146C8281A4932EF">74</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;"><font style="font-family:Arial;font-size:10pt;">ITEM 9A.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s5EBAC48912D953438D762625FA97842C"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">CONTROLS AND PROCEDURES</font></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="#s5EBAC48912D953438D762625FA97842C">74</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;"><font style="font-family:Arial;font-size:10pt;">ITEM 9B.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sA298823B1360562A883F0F393DB19179"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">OTHER INFORMATION</font></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="#sA298823B1360562A883F0F393DB19179">76</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;"><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;height:20px;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;height:20px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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="#s3846E89F93355ED58A020275909C59CB"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;">PART&#160;III</font></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;"><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:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#s3846E89F93355ED58A020275909C59CB">76</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;"><font style="font-family:Arial;font-size:10pt;">ITEM&#160;10.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sD6329B28C63859C88BFB1F80BE976BB3"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">DIRECTORS, EXECUTIVE OFFICERS, AND CORPORATE GOVERNANCE</font></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="#sD6329B28C63859C88BFB1F80BE976BB3">76</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;"><font style="font-family:Arial;font-size:10pt;">ITEM&#160;11.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sDABE5D5A61115AF78FB971E9E3280DAF"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">EXECUTIVE COMPENSATION</font></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="#sDABE5D5A61115AF78FB971E9E3280DAF">76</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;"><font style="font-family:Arial;font-size:10pt;">ITEM&#160;12.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s03602854C6E05F8B825D233B2EB4B870"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS</font></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="#s03602854C6E05F8B825D233B2EB4B870">76</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;"><font style="font-family:Arial;font-size:10pt;">ITEM&#160;13.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s890E653D959953A3AB0F2FE96874B376"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE</font></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="#s890E653D959953A3AB0F2FE96874B376">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;"><font style="font-family:Arial;font-size:10pt;">ITEM&#160;14.</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;"><a style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:underline;" href="#sA744AA0F22B654C9B8D7516B6EAB7D4C"><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:underline;">PRINCIPAL ACCOUNTING FEES AND SERVICES</font></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="#sA744AA0F22B654C9B8D7516B6EAB7D4C">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;"><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;height:20px;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;height:20px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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="#sFA3C1CA31300503C9E846185615E1991"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;">PART&#160;IV</font></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;"><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:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#sFA3C1CA31300503C9E846185615E1991">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;"><font style="font-family:Arial;font-size:10pt;">ITEM&#160;15.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sC4C4827597A85E73BDB9E960E3C5264E"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</font></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="#sC4C4827597A85E73BDB9E960E3C5264E">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;"><font style="font-family:Arial;font-size:10pt;">ITEM 16.</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;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sB83571846CA65D228CC4DD7EAF491689"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">FORM 10-K SUMMARY</font></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="#sB83571846CA65D228CC4DD7EAF491689">77</a></div></td></tr></table></div></div><div><br></div><hr style="page-break-after:always"><div><a name="s18EC96939DCB5FA488E3BE7BDA041F0D"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">PART I</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Unless the context otherwise requires, the words &#8220;Cognex</font><font style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></font><font 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.</font></div><div><a name="s15956C36165A516391A7987CC6A90C99"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 1:  BUSINESS</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Corporate Profile</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 tasks, primarily in manufacturing processes, where vision is required.  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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">What is Machine Vision?</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></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;">1</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Machine vision products combine cameras with innovativesoftware to collect images and then answer questions about these images, such as:</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Question</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:inherit;font-size:8pt;">&#160;&#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;font-weight:bold;text-decoration:underline;">Description</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:inherit;font-size:8pt;">&#160;&#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;font-weight:bold;text-decoration:underline;">Example</font></div></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-style:italic;text-decoration:underline;">GUIDANCE</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:inherit;font-size:8pt;">&#160;&#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:inherit;font-size:8pt;">&#160;&#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></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;">Where is it?</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:inherit;font-size:8pt;">&#160;&#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;">Determining the exact physical location and orientation of an object.</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:inherit;font-size:8pt;">&#160;&#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;">Determining the position of a printed circuit board so that a robot can automatically be guided to place electronic components.</font></div></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-style:italic;text-decoration:underline;">IDENTIFICATION</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:inherit;font-size:8pt;">&#160;&#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:inherit;font-size:8pt;">&#160;&#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></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;">What is it?</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:inherit;font-size:8pt;">&#160;&#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;">Identifying an object by analyzing its physical appearance or by reading a serial number or symbol.</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:inherit;font-size:8pt;">&#160;&#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;">Reading a two-dimensional barcode directly marked on an automotive airbag so that it can be tracked and processed correctly through manufacturing.</font></div></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-style:italic;text-decoration:underline;">INSPECTION</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:inherit;font-size:8pt;">&#160;&#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:inherit;font-size:8pt;">&#160;&#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></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;">How good is it?</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:inherit;font-size:8pt;">&#160;&#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;">Inspecting an object for flaws or defects.</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:inherit;font-size:8pt;">&#160;&#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;">Checking for debris to ensure that foreign objects are not present in a product before shipping to consumers.</font></div></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-style:italic;text-decoration:underline;">GAUGING</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:inherit;font-size:8pt;">&#160;&#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:inherit;font-size:8pt;">&#160;&#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></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;">What size is it?</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:inherit;font-size:8pt;">&#160;&#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;">Determining the dimensions of an object.</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:inherit;font-size:8pt;">&#160;&#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;">Determining the diameter of a bearing prior to final assembly.</font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Machine Vision Market</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 19 to the Consolidated Financial Statements, appearing in Part II - Item 8 of this Annual Report on Form 10-K. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2018, 2017, and 2016, direct and indirect revenue from Apple Inc. accounted for 15%, 20%, and 17% of total revenue, respectively. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Business Strategy</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Our goal is to expand our position as a leading worldwide provider of machine vision products.  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 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  We identify large customers with high-volume applications and offer them collaborative development to deliver solutions to solve their complex vision problems. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 we seek opportunities to expand into adjacent markets for vision, such as logistics, airport baggage handling, mobile terminals, life sciences, and collaborative robotics.  We invest through internal development, as well as the acquisition of businesses and technologies.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  We invest in emerging, high-growth regions where many manufacturers can benefit from </font></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;">2</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Acquisitions</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  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.  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.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Products</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex offers a full range of vision and ID products designed to meet customer needs at different performance and price points.  Our products range from low-cost vision sensors that are easily integrated, to PC-based systems for users with more experience or more complex requirements.  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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Vision Software</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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's VisionPro</font><font style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></font><font style="font-family:Arial;font-size:10pt;">&#32;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 ViDi deep learning-based image analysis software solves complex applications that are too complicated and time-consuming to program and maintain with traditional machine vision rules-based algorithms.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Vision Systems and Sensors</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 are designed to deliver very simple, low-cost, reliable solutions for a limited number of common vision applications such as checking the presence and size of parts.  Cognex offers the In-Sight</font><font style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></font><font style="font-family:Arial;font-size:10pt;">&#32;product line of vision systems 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.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">ID Products</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ID products 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 from the beginning of their life to the end, and is also used in supply chain management and repair.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ID products 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.  Cognex offers the DataMan</font><font style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></font><font style="font-family:Arial;font-size:10pt;">&#32;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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Research, Development, and Engineering</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font></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;">3</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">efforts, we intend to continue our strategy of gaining access to new technology through strategic relationships and acquisitions where appropriate.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, Cognex employed 508 professionals in RD&amp;E, many of whom are software developers. Cognex&#8217;s RD&amp;E expenses totaled $116,445,000 in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, $99,205,000 in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and $78,269,000 in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">, or approximately 14%, 13%, and 15% 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.  Although we target our annual RD&amp;E spending to be between 10% and 15% of total revenue, this percentage is impacted by revenue levels and investing cycles.</font></div><div style="line-height:174%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Manufacturing and Order Fulfillment</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Sales Channels and Support Services</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 integration and distribution partners.  Our integration partners are experts in vision and complementary technologies that can provide turnkey solutions for complex automation projects using vision, and our distribution partners provide sales and local support to help Cognex reach the many prospects for our products in factories around the world. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2018, Cognex&#8217;s sales force consisted of 981 professionals, and our partner network consisted of 386 active integrators and authorized distributors.  Sales engineers call directly on targeted accounts, with the assistance of application engineers, and manage the activities of our integration and distribution partners within their territories in order to provide an advantageous sales model for our products.  The majority of our sales engineers are degreed engineers.  Cognex has sales and support personnel located throughout the Americas, Europe, and Asia. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sales to customers based outside of the United States represented approximately 71% of total revenue in 2018 compared to approximately 76% of total revenue in 2017.  In 2018, approximately 38% of our total revenue came from customers based in Europe, 16% from customers based in Greater China, 5% from customers based in Japan, and 12% from customers based in other regions outside the United States.  Sales to customers based in Europe are denominated in Euros and U.S. Dollars, sales to customers based in Greater China are denominated in 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</font><font style="font-family:Arial;font-size:10pt;color:#ff0000;">&#32;</font><font style="font-family:Arial;font-size:10pt;">Note 19 to the Consolidated Financial Statements, appearing in Part II - Item&#160;8 of this Annual Report on Form 10-K.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex&#8217;s service offerings 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. </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></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;">4</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Intellectual Property</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, Cognex owned 640 patents issued worldwide and had another 490 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</font><font style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></font><font style="font-family:Arial;font-size:10pt;">, VisionPro</font><font style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></font><font style="font-family:Arial;font-size:10pt;">, In-Sight</font><font style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></font><font style="font-family:Arial;font-size:10pt;">, and  DataMan</font><font style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></font><font style="font-family:Arial;font-size:10pt;">, as well as many common-law marks.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Compliance with Environmental Provisions</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Competition</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Backlog</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, backlog, which includes deferred revenue, totaled $65,408,000, compared to $42,186,000 as of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2017</font><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Employees</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, Cognex employed </font><font style="font-family:Arial;font-size:10pt;">2,124</font><font style="font-family:Arial;font-size:10pt;">&#32;persons, including 1,246 in sales, marketing, and service activities; 508 in research, development, and engineering; 179 in manufacturing and quality assurance; and 191 in information technology, finance, and administration.  Of our </font><font style="font-family:Arial;font-size:10pt;">2,124</font><font style="font-family:Arial;font-size:10pt;">&#32;employees, 1,251 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Available Information</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></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;">5</font></div></div><hr style="page-break-after:always"><div><a name="s9546906FCBB4503EA9DDCB9CCAA5764E"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;1A:  RISK FACTORS</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">The loss of a large customer could have an adverse effect on our business.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue from a single customer accounted for 15%, 20%, and 17% of total revenue in 2018, 2017, and 2016, respectively.  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 post-sale support, which may lower our gross margin percentage.  Furthermore, we typically extend credit terms to large customers, resulting in large 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.  In some cases, end customers of our resellers may be large consumers of our products.  The loss of, or significant curtailment of purchases by, any one or more of our larger customers could have a material adverse effect on our operating results.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Global economic conditions may negatively impact our operating results.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  If global economic conditions were to deteriorate, our revenue and our ability to generate operating profits could be materially adversely affected.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As a result of global economic conditions, our business is subject to the following risks, among others:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">our customers may not have sufficient cash flow or access to financing to purchase our products,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">our customers may not pay us within agreed upon terms or may default on their payments altogether,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">our vendors may be unable to fulfill their delivery obligations to us in a timely manner,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><font 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,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">lower cash flows may result in impairment charges for acquired intangible assets or goodwill,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">a decline in our stock price may make stock options a less attractive form of compensation and a less effective form of retention for our employees, and</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">the trading price of our common stock may be volatile.</font></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2018, the Company had $798 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 the past, and could be materially adversely affected in the future, as a result of unfavorable economic conditions and reduced capital spending by manufacturers worldwide.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">A downturn in the consumer electronics or automotive industries may adversely affect our business.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2018, the largest industries that we served in the factory automation market were the consumer electronics and automotive industries.  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 be materially and adversely affected by declining sales in these industries.</font></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;">6</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">We are pursuing applications 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.  Revenue from customers in the logistics industry grew over 50% in 2018, and our future growth plans are dependent upon continued 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.  In addition, we are making significant investments in engineering and sales to further develop our logistics business.  Over time, we expect our gross margin percentage in logistics to be more in line with our overall average.  Failure to generate revenue in this industry in the amounts anticipated may have a material adverse impact on our revenue growth and operating results.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Economic, political, and other risks associated with international sales and operations could adversely affect our business and operating results.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2018, approximately 71% 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:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">various regulatory and statutory requirements,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">difficulties in injecting and repatriating cash,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">export and import restrictions,</font></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;"><font style="font-family:Arial;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">trade tariffs,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">transportation delays,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">employment regulations and local labor conditions,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">difficulties in staffing and managing foreign sales operations,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">instability in economic or political conditions, including potential adverse effects from Brexit,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">difficulties protecting intellectual property,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">business systems connectivity issues, and</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">potentially adverse tax consequences.</font></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Any of these factors could have a material adverse effect on our operating results.  Most recently, trade tariffs imposed by the United States on certain components imported from Chinese suppliers have 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.  Trade tariffs may also have an indirect impact on the economic climate in China, which in turn, may have an 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, may have a material adverse effect on our gross margin.  In addition to recent trade tariffs, if U.S. export controls expand to place new 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, such controls could have a material adverse effect on our operating results.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font></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;">7</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Our foreign currency hedging program includes 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">A significant portion of our revenues and expenses are denominated in the Euro, the Japanese Yen, and the Chinese Yuan, also known as Renminbi.  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 43% of our sales in 2018 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Information security breaches or business system disruptions may adversely affect our business.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In mid-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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:11pt;"><font 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 and benefits packages, and encourage employee retention.  We are limited as to the number of options that we may grant under our stock option plans and stock price volatility may cause periods of time during which option exercise prices might be less than the sales price of our common stock, which may lessen such options' retentive attributes.  Accordingly, we may find it difficult to attract, retain, and motivate employees, and any such difficulties could materially adversely affect our business.</font><font style="font-family:inherit;font-size:11pt;font-weight:bold;">&#32;</font></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;">8</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">To help support our growth plans, our headcount increased from 1,771 employees as of December 31, 2017 to 2,124 employees as of December 31, 2018.   Although this represents a net headcount increase of 353 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 new Enterprise Resource Planning (ERP) system, 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 are working 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Because the market for our products is characterized by rapid technological advances, 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. </font></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;">9</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  In 2018, inventories increased 23% from $67,923,000 as of December 31, 2017 to $83,282,000 as of December 31, 2018, primarily due to strategic purchases to build safety stock in advance of the Company's Enterprise Resource Planning (ERP) system implementation and to mitigate our exposure to significant increases in demand similar to what we experienced in 2017.  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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 extensive 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:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">substantial delays in shipment,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">significant repair or replacement costs,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font 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</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">potential damage to our reputation.</font></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Any of these results could have a material adverse effect on our operating results.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 may not generate the gross margins that we have experienced historically.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">We utilize a direct sales force, as well as a network of integration and distribution 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.</font></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;">10</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">protect our proprietary technology,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">protect our patents from challenge, invalidation, or circumvention, or</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ensure that our intellectual property will provide us with competitive advantages.</font></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Our Company may be subject to time-consuming and costly litigation.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">From time to time, we may be subject to various claims and lawsuits by competitors, shareholders, customers, 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 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Increased competition may result in decreased demand or prices for our products and services.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">We have in the past acquired, and will in the future consider the acquisition of, businesses and technologies in the machine vision industry. Our business may be negatively impacted by risks related to those acquisitions.  These risks include, among others:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">the inability to find or close attractive acquisition opportunities,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">the diversion of management&#8217;s attention from other operational matters,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">the inability to realize expected synergies resulting from the acquisition,</font></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;"><font style="font-family:Arial;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">difficulties or delays in integrating the personnel, operations, technologies, products and systems of acquired businesses,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">the failure to retain key customers or employees, and</font></div></td></tr></table><div><br></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">11</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></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;"><font style="font-family:inherit;font-size:10pt;">&#8226;</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">the impairment of acquired intangible assets resulting from lower-than-expected cash flows from the acquired assets.</font></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2018, our investment portfolio of debt securities totaled $689 million.  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. </font><font style="font-family:Arial;font-size:10pt;color:#ff0000;">&#32;</font><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2018, our portfolio of debt securities had a net unrealized loss of $1,932,000.  Included in this net loss, were gross unrealized losses totaling $2,255,000, of which $1,445,000 were in a loss position for less than twelve months and $810,000 were in a loss position for greater than twelve months.  As of December&#160;31, 2018, 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2018, we had $113 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2018, we had $10 million in acquired intangible assets, consisting primarily of acquired completed 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 the asset, which may be negatively impacted by economic trends. A decline in the cash flows generated by these assets may result in future impairment charges.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">We are subject to income taxes in the United States, as well as numerous foreign jurisdictions.  Significant judgment is required in determining our worldwide provision for income 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.  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.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 included a decrease in the U.S. federal statutory corporate tax rate from 35% to 21%, a one-time transition tax, and limits on certain deductions.  The Securities and Exchange Commission (SEC) released Staff Accounting Bulletin (SAB) No. 118 to provide guidance to companies on how to implement the accounting and disclosure changes required as a result of the Tax Act.  The Company made what it considered to be a reasonable estimate of the impact of the Tax Act in its financial statements for the year ended December 31, 2017.  In 2018, the Company revised its estimate of the impact of the Tax Act based on additional regulatory guidance. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company will continue to gather and analyze information on historical unrepatriated foreign earnings and to monitor state laws relating to this income to finalize both the federal and state tax impact.  The Tax Act limits certain deductions and these limitations may impact the value of existing deferred tax assets.  The Company will continue to review the impact of these limitations as regulatory guidance is issued.  </font></div><div><a name="s15DADA0013755524BBB8AAFCA5E55736"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></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;">12</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 1B:  UNRESOLVED STAFF COMMENTS</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">None</font></div><div><a name="s7475235CE36A58718A125124977FD861"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 2:  PROPERTIES</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 partially occupied by employees primarily in sales, marketing, service, finance, and information technology functions.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div><a name="s0A36B149555B5C7692FFA5C9D1F03430"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 3:  LEGAL PROCEEDINGS</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div><a name="s292D690CE0C4518BB18954D9F9320447"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 4:  MINE SAFETY DISCLOSURES</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Not applicable.</font></div><div><a name="sD0F6C30BBE2D5ED6ACE29579B80F8BEC"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 4A:  EXECUTIVE OFFICERS OF THE REGISTRANT</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">:</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Name</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:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Age</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;font-weight:bold;text-decoration:underline;">Title</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Robert&#160;J.&#160;Shillman</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;">72</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;">Chairman of the Board of Directors and Chief Culture Officer</font></div></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;">Robert J. Willett</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;">51</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;">President and Chief Executive Officer</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">John J. Curran</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;">52</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;">Senior Vice President of Finance and Chief Financial Officer</font></div></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;">Sheila M. DiPalma</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;">52</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;">Senior Vice President of Employee Services</font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Mr. Curran joined Cognex in 2016 after 21 years at EMC Corporation, a company that manages business involved in the transformation of information technology, where he most recently served as Senior Vice President and Corporate Controller.  While at EMC, Mr. Curran also held leadership positions in corporate and international finance, and served as Interim CFO of Pivotal, Inc., a $200M subsidiary of EMC focusing on application and data infrastructure software, agile development services, and data science consulting.  He holds a Bachelor of Science degree in Accounting and a Master of Business Administration from Babson College.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Ms. DiPalma joined Cognex in 1992 as Senior Reporting Accountant.  She served for more than 20 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. </font></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;">13</font></div></div><hr style="page-break-after:always"><div><a name="s2D218BC6BDF45329AF6EF5408601FA87"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-bottom:12px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">PART II</font></div><div><a name="s002CCE6D336F58819B174816A96D7FE2"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">January&#160;27, 2019</font><font style="font-family:Arial;font-size:10pt;">, there were approximately 700 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.</font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:inherit;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;">In February 2018, the Company's Board of Directors authorized the repurchase of $150,000,000 of the Company's common stock.  During the fourth quarter of 2018, the Company repurchased 1,227,000 shares at a cost of $52,938,000 under this program. Stock repurchases under this February 2018 program are now complete. 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, 2018, the Company repurchased 203,000 shares at a cost of $8,622,000 under this program, leaving a remaining balance of $191,378,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 options, stock price, share availability, and cash requirements.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 the fourth quarter of 2018:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total Number of</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares&#160;Purchased</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Price&#160;Paid</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">per Share</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total Number of</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares&#160;Purchased&#160;as</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Part of Publicly</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Announced Plans or</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Programs</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Approximate Dollar</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Value of Shares that</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">May Yet Be</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Purchased&#160;Under&#160;the</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Plans or Programs</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">October 1 - October 28, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">252,938,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">October 29 - November 25, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">937,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">43.62</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">937,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">212,064,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">November 26 - December 31, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;">493,403</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">41.92</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">493,403</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">191,378,000</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Total</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,430,403</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">43.04</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,430,403</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">191,378,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></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%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></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;">14</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;"><img src="chart-b7c77181d2175a648f7.jpg" alt="chart-b7c77181d2175a648f7.jpg" style="height:533px;width:666px;"></div><div style="line-height:120%;text-align:justify;font-size:14pt;"><font style="font-family:inherit;font-size:14pt;"><br></font></div><div style="line-height:120%;text-align:justify;font-size:14pt;"><font style="font-family:inherit;font-size:14pt;"><br></font></div><div style="line-height:120%;text-align:justify;font-size:14pt;"><font style="font-family:inherit;font-size:14pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">*$100 invested on 12/31/2013 in stock or index, including reinvestment of dividends.  Fiscal year ended December 31.</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">12/13</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">12/14</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">12/15</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">12/16</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">12/17</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">12/18</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Cognex Corporation</font></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:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">100.00</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><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;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">108.25</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><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;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">88.92</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><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;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">168.58</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><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;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">325.21</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><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;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">206.41</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">NASDAQ Composite</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">100.00</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">114.62</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">122.81</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">133.19</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">172.11</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">165.84</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">NASDAQ Stocks</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">100.00</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">127.06</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">127.05</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">131.44</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">195.46</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">183.84</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font 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</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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;">15</font></div></div><hr style="page-break-after:always"><div><a name="s9424D6E1DAB05DA69A82CC61D3E60ABD"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;6:&#160;&#160;SELECTED FINANCIAL DATA</font><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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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 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;"><font style="font-family:Arial;font-size:8pt;">2016</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 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;"><font style="font-family:Arial;font-size:8pt;">2015</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 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;"><font style="font-family:Arial;font-size:8pt;">2014</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</font></div></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;"><font style="font-family:Arial;font-size:9.5pt;">Statement of Operations Data:</font></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;"><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 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;"><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 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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9.5pt;">Revenue</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">470,991</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">461,006</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Cost of revenue (1)</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">206,052</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">187,289</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">131,070</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">123,085</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">120,992</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Gross margin</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">600,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">578,794</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">398,445</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">347,906</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">340,014</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Research, development, and engineering expenses (1)</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">116,445</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">99,205</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,269</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">69,791</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">55,831</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Selling, general, and administrative expenses (1)</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">262,699</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">220,728</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">166,110</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">156,674</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">148,699</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">221,142</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">258,861</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">154,066</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">121,441</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">135,484</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Non-operating income</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,432</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">7,603</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">8,011</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">5,441</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">3,904</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Income from continuing operations before income tax expense</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">234,574</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">266,464</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">162,077</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">126,882</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">139,388</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Income tax expense on continuing operations</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">15,307</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">89,752</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">18,128</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">19,288</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">21,869</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Net income from continuing operations</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">219,267</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">176,712</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">143,949</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">107,594</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">117,519</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Net income (loss) from discontinued operations (1)</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(255</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">79,410</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">10,644</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Net income </font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">219,267</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">176,712</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">143,694</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">187,004</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">128,163</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></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;"><font style="font-family:Arial;font-size:9.5pt;">Basic earnings per weighted-average common and common-equivalent share (2):</font></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;"><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 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;"><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 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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9.5pt;">Net income from continuing operations</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1.27</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.02</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.84</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.62</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.68</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Net income (loss) from discontinued operations</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.46</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.06</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Net income</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1.27</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1.02</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.84</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1.08</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.74</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">Diluted earnings per weighted-average common and common-equivalent share (2):</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9.5pt;">Net income from continuing operations</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1.24</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.98</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.83</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.61</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.66</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Net income (loss) from discontinued operations</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.45</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.06</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Net income</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1.24</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.98</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.83</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1.06</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.72</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></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;"><font style="font-family:Arial;font-size:9.5pt;">Weighted-average common and common-equivalent shares outstanding (2):</font></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;"><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 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;"><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 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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9.5pt;">Basic</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">172,333</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">173,287</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">170,676</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">172,592</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">173,716</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Diluted</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">177,406</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">179,551</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">174,144</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">175,982</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">178,142</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></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;"><font style="font-family:Arial;font-size:9.5pt;">Cash dividends per common share (2)</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">0.1850</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.1675</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.1475</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.1050</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></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;"><font style="font-family:Arial;font-size:9.5pt;">(1) Amounts include stock-based compensation expense, as follows:</font></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;"><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 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;"><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 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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9.5pt;">Cost of revenue</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,447</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,881</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,052</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,515</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,116</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Research, development, and engineering</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">14,578</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,022</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,271</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,194</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,709</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Selling, general, and administrative</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">24,065</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">19,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,235</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,032</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,234</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Discontinued operations</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">1,533</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">1,099</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Total stock-based compensation expense</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">41,090</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">31,942</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">20,558</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">21,274</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">15,158</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font 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.</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December 31,</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">2016</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">2015</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">2014</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">(In thousands)</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="text-align:left;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">Balance Sheet Data:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9.5pt;">Working capital</font></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;"><font style="font-family:Arial;font-size:9.5pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;font-weight:bold;">688,969</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">517,356</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">461,357</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">397,470</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">188,986</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Total assets</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9.5pt;font-weight:bold;">1,289,667</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9.5pt;">1,287,753</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9.5pt;">1,038,361</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9.5pt;">877,421</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9.5pt;">821,399</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9.5pt;">Shareholders&#8217; equity</font></div></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;"><font style="font-family:Arial;font-size:9.5pt;font-weight:bold;">1,135,263</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">1,095,673</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">963,385</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">832,331</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><font style="font-family:Arial;font-size:9.5pt;">743,171</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;">16</font></div></div><hr style="page-break-after:always"><div><a name="s9E72CE1127425F26B87B47BBF5FF8268"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">FORWARD-LOOKING STATEMENTS</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, 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;the loss of a large customer; (2)&#160;current and future conditions in the global economy, including the imposition of tariffs or export controls; (3)&#160;the reliance on revenue from the consumer electronics or automotive industries; (4)&#160;the inability to penetrate 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; (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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">EXECUTIVE OVERVIEW</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 tasks, primarily in manufacturing processes, 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On January 1, 2018, the Company adopted Accounting Standards Codification (ASC) 606, "Revenue from Contracts with Customers," using the full retrospective method to present all periods reported on a consistent basis.  Accordingly, prior period revenue, cost of revenue, and gross profit have been restated to apply the provisions of this ASC.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue for the year ended December&#160;31, 2018 totaled $806,338,000, representing an increase of 5% over 2017.  Lower revenue from customers in the consumer electronics industry was offset by higher revenue across a variety of other industries, including the logistics and automotive industries.  Gross margin was 74.4% of revenue in 2018 compared to 75.6% of revenue in 2017 due primarily to a higher percentage of total revenue from the logistics industry, which currently has relatively lower gross margins.  Operating expenses increased by 19% over 2017 due principally to the impact of headcount additions to support our future growth plans.  Operating income decreased to 27% of revenue in 2018 from 34% of revenue in 2017, however net income increased to 27% of revenue in 2018 from 23% of revenue in 2017 due to a significantly lower effective tax rate.  Income tax expense in 2017 included a one-time tra</font></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;">17</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">nsition tax on unrepatriated foreign earnings under the Tax Cuts and Jobs Act signed into law on December 22, 2017.  Net income per diluted share increased to $1.24 in 2018 from $0.98 in 2017.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table sets forth certain consolidated financial data for continuing operations as a percentage of revenue:</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</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 colspan="2" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;text-decoration:underline;">2017</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 colspan="2" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;text-decoration:underline;">2016</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">100</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">100</font></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;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">100</font></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;"><font style="font-family:Arial;font-size:10pt;">%</font></div></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;">Cost of revenue</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">26</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">24</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">25</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross margin</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">74</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">76</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">75</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Research, development, and engineering expenses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">14</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">15</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">33</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">29</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">31</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Operating income</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">27</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">34</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">29</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-operating income</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">2</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Income from continuing operations before income tax expense</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">29</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">35</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">31</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense on continuing operations</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">12</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Net income from continuing operations</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">27</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">23</font></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;"><font style="font-family:Arial;font-size:10pt;">%</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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27</font></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;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td></tr></table></div></div><div><a name="sD15D0755EE995913AC0E6408622A8F33"></a></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">RESULTS OF OPERATIONS</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December&#160;31, 2018 Compared to Year Ended December&#160;31, 2017 </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue from customers based in the Americas increased by 25% from the prior year driven by strong sales in the logistics industry.  Revenue from customers based in Greater China increased by 16% 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 6% and revenue from customers based in other Asia regions decreased by 8% 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">As of the date of this report, we expect revenue for the first quarter of 2019 to be lower than the fourth quarter of 2018. In addition to the sequential decrease in revenue we typically experience in the first quarter as many manufacturing customers spend their capital budgets by the calendar year end, we are experiencing slower order trends in the automotive industry in the Americas and lower demand from customers based in Greater China. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Gross Margin</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></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;">18</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company's gross margin percentage has ranged in the mid 70s for the past several years. As of the date of this report, we expect the gross margin percentage for the first quarter of 2019 to continue to be within this historical range, but toward the lower end of this range due to anticipated unfavorable product mix toward sales in the logistics industry. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Operating Expenses</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Research, Development, and Engineering Expenses</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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).</font></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;"><font style="font-family:Arial;font-size:10pt;">RD&amp;E expenses in 2017</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">99,205</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Personnel-related costs</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">10,173</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,493</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Other</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,574</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">RD&amp;E expenses in 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">116,445</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">RD&amp;E expenses as a percentage of revenue were 14% in 2018 compared to 13% in 2017.  We believe that a continued commitment to RD&amp;E activities is essential in order to maintain or achieve a leadership position for our existing products and to provide innovative new product offerings, as well as to provide engineering support for strategic 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 we target our annual RD&amp;E spending to be between 10% and 15% of revenue.  This percentage is impacted by revenue levels and investing cycles.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Selling, General, and Administrative Expenses</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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). </font></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;"><font style="font-family:Arial;font-size:10pt;">SG&amp;A expenses in 2017</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">220,728</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Personnel-related costs</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">36,569</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,912</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Depreciation expense</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,744</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Incentive compensation plans</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(7,967</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></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;">Other</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,713</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">SG&amp;A expenses in 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">262,699</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Non-operating Income (Expense)</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></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;">19</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Income Tax Expense</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">The Tax Act</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 payable over eight years.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company will continue to gather and analyze information on historical unrepatriated foreign earnings and monitor state laws relating to this income to finalize both the federal and state tax impact.  The Tax Act limits certain deductions and these limitations may impact the value of existing deferred tax assets.  The Company will continue to review the impact of these limitations as regulatory guidance is issued.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Other Discrete Tax Items</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The effective tax rate also included a decrease in tax expense of $8,488,000 in 2018, $38,569,000 in 2017, and $11,889,000 in 2016 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 sufficient local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested resulting in the additional state income tax provision.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 a net decrease in tax expense of $2,502,000 in 2017, consisting primarily of i) the final true-up of the prior year's tax accrual upon filing the related tax returns and ii) the expiration of the statutes of limitations for certain reserves for income tax uncertainties. </font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  The statutory tax rate is 12.5% in Ireland and 25% in China, compared to the U.S. federal statutory corporate tax rate of 21%.  International rights to certain of the Company&#8217;s intellectual property are held by a subsidiary whose legal jurisdiction does not tax this income, resulting in a foreign effective tax rate lower than the above mentioned statutory rates. </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December&#160;31, 2017 Compared to Year Ended December&#160;31, 2016 </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue for the year ended December&#160;31, 2017 increased by $236,568,000, or 45%, from the prior year.  Changes in foreign currency exchange rates did not have a material impact on revenue.  Revenue increased by 32% in the Americas, 43% in Europe, and 63% in Asia due to a higher volume of machine vision products sold in all regions.  Although the increase in revenue came from a variety of industries, strong sales in the logistics industry was a large </font></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;">20</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">contributor to the growth in the Americas and strong sales in the consumer electronics industry was a large contributor to the growth in Europe and Asia.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Gross Margin</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross margin as a percentage of revenue was 75.6% in 2017 compared to 75.2% in 2016.  The increase in gross margin was due to the favorable impact of material cost reductions and volume purchasing, as well as manufacturing efficiencies achieved from a higher revenue level as fixed manufacturing costs were spread over a larger revenue base. These decreases were partially offset by higher revenue from a material customer in the consumer electronics industry under a preferred pricing arrangement, and to a lesser extent, an increased level of projects in the logistics industry that require installation services with lower margins.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Operating Expenses</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Research, Development, and Engineering Expenses</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Research, development, and engineering (RD&amp;E) expenses in 2017 increased by $20,936,000, or 27%, from the prior year as detailed in the table below (in thousands).</font></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;"><font style="font-family:Arial;font-size:10pt;">RD&amp;E expenses in 2016</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,269</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Personnel-related costs</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,234</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,725</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Outsourced engineering costs</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,275</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,702</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">RD&amp;E expenses in 2017</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">99,205</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">RD&amp;E expenses increased due to higher personnel-related costs resulting primarily from headcount additions, which included engineering talent from six business acquisitions completed since August 2016.  The Company also incurred  higher spending on outsourced engineering to support new product initiatives.  Stock-based compensation expense was higher than the prior year due to a higher valuation of stock options granted early in 2017. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Selling, General, and Administrative Expenses</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Selling, general, and administrative (SG&amp;A) expenses in 2017 increased by $54,618,000, or 33%, from the prior year as detailed in the table below (in thousands). </font></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;"><font style="font-family:Arial;font-size:10pt;">SG&amp;A expenses in 2016</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">166,110</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Personnel-related costs</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17,387</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Incentive compensation plans</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">10,513</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,752</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Travel expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,654</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">ERP outside services</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,684</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sales demonstration equipment</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,985</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Recruiting costs</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,421</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,222</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">SG&amp;A expenses in 2017</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">220,728</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">SG&amp;A expenses increased due to higher personnel-related and recruiting costs resulting from headcount additions, principally sales personnel.  In addition, higher incentive compensation plan expenses, including sales commission and Company bonus plans, were recorded in 2017 as a result of the additional headcount and higher achievement levels based upon the Company's performance.  Travel expenses and sales demonstration equipment costs were also higher in 2017 due to additional sales personnel and the higher business level.  Stock-based compensation expense was higher than the prior year due to a higher valuation of stock options granted early in 2017.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2017, the Company incurred costs for outside services related to the preliminary project and application development stages for a new Enterprise Resource Planning (ERP) system, which is the management information system that integrates the Company's manufacturing, order fulfillment, and financial activities. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Non-operating Income (Expense)</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company recorded foreign currency losses of $1,601,000 in 2017 and foreign currency gains of $101,000 in 2016.  The foreign currency losses in 2017 resulted primarily from the revaluation and settlement of accounts receivable denominated in U.S. Dollars recorded on the books of the Company's Irish subsidiary, for which the functional currency </font></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;">21</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">is the Euro.  During the period of time that these receivables were outstanding, the U.S. Dollar weakened versus the Euro resulting in foreign currency losses. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Investment income increased by $2,503,000, or 36%, from the prior year.  The increase was due to higher yields, as well as additional funds available for investment on the Company's portfolio of debt securities.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company recorded other expense of $338,000 in 2017 and other income of $871,000 in 2016.  Other income (expense) included a benefit of $28,000 in 2017 and a benefit of $463,000 in 2016 resulting from the revaluation of contingent consideration liabilities arising from business acquisitions.  In addition, the Company received a foreign government subsidy in the amount of $422,000 that was recorded in other income in 2016.  Other income (expense) also included rental income, net of associated expenses, from leasing space in buildings adjacent to the Company&#8217;s corporate headquarters.  Fewer tenants occupied this space in 2017, resulting in lower non-operating rental income.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Income Tax Expense</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s effective tax rate was 34% of the Company&#8217;s pre-tax income in 2017 compared to 11% in 2016.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On December 22, 2017, the United States Congress passed and the President signed into law the Tax Cuts and Jobs Act of 2017 (the "Tax Act").  The Tax Act includes a number of changes that impact the Company's deferred tax positions, with the primary impact resulting from a decrease in the U.S. federal statutory corporate tax rate from 35% to 21%.  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 from the write-down of deferred tax assets in 2017.  </font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In addition, 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.  </font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Furthermore, 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.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In addition to the 2017 impact of the Tax Act, the effective tax rate included a decrease in tax expense of $38,569,000 in 2017 and $11,889,000 in 2016 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.  </font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Remaining discrete tax events resulted in a decrease in tax expense of $2,502,000 in 2017, consisting primarily of the final true-up of the prior year's tax accrual upon filing the actual tax returns and the expiration of the statutes of limitations for certain reserves for income tax uncertainties, and an increase in tax expense of $475,000 in 2016.</font></div><div><a name="s747FB279054A5FE593130401FC02809A"></a></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">LIQUIDITY AND CAPITAL RESOURCES</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 $797,599,000 as of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s cash requirements in 2018 were primarily met with positive cash flows from operations.  Cash requirements consisted of operating activities, the repurchase of common stock, the payment of dividends, and capital expenditures.  Capital expenditures in 2018 totaled $37,095,000 and consisted primarily of computer hardware and software, manufacturing test equipment related to new product introductions, and improvements made to the Company&#8217;s headquarters building in Natick, Massachusetts.  In the third quarter of 2018, the Company placed into service a new Enterprise Resource Planning (ERP) system totaling $10,000,000 that is being depreciated over a ten year estimate useful life.  </font></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;">22</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s material contractual obligations, both fixed and contingent (in thousands):</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December&#160;31,</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Inventory Purchase Commitments</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Leases</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Total</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">11,097</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,086</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">18,183</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">2020</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,227</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,227</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">2022</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,918</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,918</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2023</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,209</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,209</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Thereafter</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,198</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,198</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">11,097</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">22,747</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">33,844</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></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%;text-align:justify;font-size:10pt;"><font 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:</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Stock Repurchases</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In April 2017, the Company's Board of Directors authorized the repurchase of $100,000,000 of the Company's common stock.  The Company repurchased 1,744,000 shares at a cost of $100,000,000 under this program, including 803,000 shares at a cost of $45,200,000 in the first quarter of 2018.  In February 2018, the Company's Board of Directors authorized the repurchase of $150,000,000 of the Company's common stock.  The Company repurchased 3,174,000 shares at a cost of $150,000,000 under this program.  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, 2018, the Company repurchased 203,000 shares at a cost of $8,622,000 under this program, leaving a remaining balance of $191,378,000.  Total stock repurchases in 2018 amounted to $203,822,000.  The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock options, stock price, share availability, and cash requirements.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Dividends</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s Board of Directors declared and paid cash dividends of $0.045 per share in the first, second, and third quarters of 2018.  The dividend was increased to $0.050 in the fourth quarter of 2018.  Total dividends in 2018 amounted to $31,865,000.  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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Acquisitions</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s business strategy includes selective expansion into new machine vision markets and applications through the acquisition of businesses and technologies.  Certain of the Company's business acquisitions 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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&#160;31, 2018, the Company had $797,599,000 in cash and investments.  In addition, Cognex 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 our longer-term liquidity needs.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">OFF-BALANCE SHEET ARRANGEMENTS</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font 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.</font></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;">23</font></div></div><hr style="page-break-after:always"><div><a name="s234724EB308B575885CB9FBCD9761C3B"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">CRITICAL ACCOUNTING POLICIES AND ESTIMATES</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Revenue Recognition</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Contract with the Customer</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Performance Obligations in the Contract</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.   </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Determining the Transaction Price</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Allocating the Transaction Price to the Performance Obligations</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.</font></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;">24</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Investments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, the Company&#8217;s investment portfolio of debt securities totaled $689,387,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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, the Company&#8217;s portfolio of debt securities had a net unrealized loss of $1,932,000.  Included in this net loss were gross unrealized losses totaling $2,255,000, of which $1,445,000 were in a loss position for less than twelve months and $810,000 were in a loss position for greater than twelve months.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font></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;">25</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 2018, 2017, or 2016.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Accounts Receivable</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, the Company&#8217;s reserve against accounts receivable was $1,646,000, or 1% of the gross accounts receivable balance.  A 10% difference in the reserve against accounts receivable as of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">&#32;would have affected net income by approximately $141,000.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Inventories</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, the Company&#8217;s reserve for excess and obsolete inventory totaled $4,684,000, or 5% of the gross inventory balance.  A 10% difference in inventory reserves as of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">&#32;would have affected net income by approximately $402,000.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Long-lived Assets</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 relationship</font></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;">26</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">s arising from the AQSense acquisition 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 2018 or 2016.  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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Internal-use Software</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Goodwill</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font><font style="font-family:inherit;font-size:10pt;">&#32;</font><font style="font-family:Arial;font-size:10pt;">&#32;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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, 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 2018, 2017, or 2016.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Warranty Obligations</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, the Company&#8217;s accrued warranty obligations amounted to $4,743,000.  A 10% difference in accrued warranty obligations as of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">&#32;would have affected net income by approximately $407,000.</font></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;">27</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Contingencies</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, 2018.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Derivative Instruments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company enters 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Stock-Based Compensation</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Compensation expense is recognized for all stock option and restricted stock grants.  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, particularly as the Company continues to seek to diversify its customer base.  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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Income Taxes</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></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;">28</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 revised estimate for the one-time transition tax of $90,351,000 payable over eight years.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company will continue to gather and analyze information on historical unrepatriated foreign earnings and monitor state laws relating to this income to finalize both the federal and state tax impact.  The Tax Act limits certain deductions and these limitations may impact the value of existing deferred tax assets.  The Company will continue to review the impact of these limitations as regulatory guidance is issued.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Business Combinations</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div><a name="s4EE625F3649E5241B62B4A2AAE692716"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NEW PRONOUNCEMENTS</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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. </font></div><div><a name="sA40BA4D0DF405803B0D40D77F04AA952"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;7A:&#160;&#160;QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Foreign Currency Risk</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 enters 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 </font><font style="font-family:Arial;font-size:10pt;">45 days</font><font style="font-family:Arial;font-size:10pt;">&#32;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 </font></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;">29</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">contracts with maturities of up to </font><font style="font-family:Arial;font-size:10pt;">18 months</font><font style="font-family:Arial;font-size:10pt;">&#32;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, 2018 and 2017. </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company had the following outstanding forward contracts (in thousands): </font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2018</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2017</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Currency</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:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</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:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">High Rate</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:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Low Rate</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</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:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">High Rate</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:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Low Rate</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;height:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Euro</font></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;"><font style="font-family:Arial;font-size:10pt;">23,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">26,330</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">0.8735</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">0.8735</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Japanese Yen</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">380,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,459</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">109.86</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">109.86</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">455,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,049</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">134.88</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">134.88</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">British Pound</font></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;"><font style="font-family:Arial;font-size:10pt;">2,500</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,204</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">0.7803</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">0.7803</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,650</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,232</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">0.8874</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">0.8874</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Korean Won</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,125,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,808</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,113</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,113</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,825,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,708</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,282</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,282</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Hungarian Forint</font></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;"><font style="font-family:Arial;font-size:10pt;">750,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,685</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">279.3</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">279.3</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">545,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,110</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">309.95</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">309.95</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Taiwanese Dollar</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">55,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,807</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30.43</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30.43</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">37,725</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,278</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">35.43</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">35.43</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Canadian Dollar</font></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;"><font style="font-family:Arial;font-size:10pt;">990</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">726</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">1.3639</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">1.3639</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Singapore Dollar</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">700</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">514</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.3628</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.3628</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Swiss Franc</font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,365</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,401</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">0.9740</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">0.9740</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 Japanese Yen, and the Chinese Yuan, also known as Renminbi.  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 43% of our sales in 2018 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Interest Rate Risk</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, the fair value of the Company&#8217;s portfolio of debt securities amounted to $689,387,000 with amortized cost amounts totaling </font><font style="font-family:Arial;font-size:10pt;">$691,319,000</font><font style="font-family:Arial;font-size:10pt;">, maturities that do not exceed seven years, and a yield to maturity of 2.61%.  Differences between</font><font style="font-family:Arial;font-size:10pt;color:#ee2724;">&#32;</font><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, 93% 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 </font></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;">30</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Type of security</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Valuation&#160;of&#160;securities&#160;given</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">an&#160;interest&#160;rate&#160;decrease</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">No&#160;change&#160;in</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">interest&#160;rates</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Valuation&#160;of&#160;securities&#160;given</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">an interest&#160;rate&#160;increase</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(100 BP)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(50 BP)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">50 BP</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">100 BP</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;"><font style="font-family:Arial;font-size:8pt;">Corporate bonds</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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">301,884</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">301,161</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">300,437</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">299,714</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">298,991</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Treasury bills</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">232,348</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">231,792</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">231,237</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">230,682</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">230,127</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;"><font style="font-family:Arial;font-size:8pt;">Asset-backed&#160;securities</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">132,673</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">132,355</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">132,038</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">131,720</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">131,401</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Sovereign bonds</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">14,487</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">14,452</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">14,417</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">14,383</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">14,348</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;"><font style="font-family:Arial;font-size:8pt;">Agency bonds</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">5,949</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">5,935</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">5,921</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">5,906</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">5,892</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">Municipal bonds</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">5,363</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">5,350</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">5,337</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">5,324</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">5,311</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">692,704</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">691,045</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">689,387</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">687,729</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">686,070</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></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;">31</font></div></div><hr style="page-break-after:always"><div><a name="s486A06BC79235CA2ACEEB970C9DCD899"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;8:&#160;&#160;FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</font></div><div style="line-height:120%;padding-top:18px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">INDEX TO FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</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: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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Consolidated Financial Statements:</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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></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="#sDBC4AC67AF415B23AA96606897F0F3FF"><font style="font-family:Arial;font-size:10pt;color:#000000;">Report of Independent Registered Public Accounting Firm</font></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="#sDBC4AC67AF415B23AA96606897F0F3FF">33</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="#s0BCF6EA9C3515633900A9585E5652ACC"><font style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Statements of Operations for the Years Ended December&#160;31, 2018, 2017, and 2016</font></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="#s0BCF6EA9C3515633900A9585E5652ACC">34</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="#s8194EC3A66E9540ABE850EEB30EB1ABA"><font style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Statements of Comprehensive Income for the Years Ended December&#160;31, 2018, 2017, and 2016</font></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="#s8194EC3A66E9540ABE850EEB30EB1ABA">35</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="#sF1729D34E01A5019BA23CA87B0741A14"><font style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Balance Sheets as of December&#160;31, 2018 and 2017</font></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="#sF1729D34E01A5019BA23CA87B0741A14">36</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="#sBD4EA88F88A159E18AB56F9152B7FCF7"><font style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Statements of Cash Flows for the Years Ended December&#160;31, 2018, 2017, and 2016</font></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="#sBD4EA88F88A159E18AB56F9152B7FCF7">37</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="#s41FD9DBCD26D5BB5919FE34C24CDECC5"><font style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Statements of Shareholders&#8217; Equity for the Years Ended December&#160;31, 2018, 2017, and 2016</font></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="#s41FD9DBCD26D5BB5919FE34C24CDECC5">38</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="#sC0BB69B37052571FBB80CD9BE7E294BA"><font style="font-family:Arial;font-size:10pt;color:#000000;">Notes to the Consolidated Financial Statements</font></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="#sC0BB69B37052571FBB80CD9BE7E294BA">39</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="#s06FF132FE8E05258A0BBBB4960273F0C"><font style="font-family:Arial;font-size:10pt;color:#000000;">Selected Quarterly Financial Data (unaudited)</font></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="#s06FF132FE8E05258A0BBBB4960273F0C">72</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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Financial Statement Schedule:</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></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="#s2F46EDC587B25678858C69A3FBC45A9B"><font style="font-family:Arial;font-size:10pt;color:#000000;">Schedule II &#8211; Valuation and Qualifying Accounts for the Years Ended December&#160;31, 2018, 2017, and 2016</font></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="#s2F46EDC587B25678858C69A3FBC45A9B">73</a></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;">32</font></div></div><hr style="page-break-after:always"><div><a name="sDBC4AC67AF415B23AA96606897F0F3FF"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</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%;text-align:justify;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;">Board of Directors and Shareholders </font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Corporation</font></div><div style="line-height:174%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Opinion on the financial statements </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">,the related consolidated statements of comprehensive income, changes in shareholders&#8217; equity, and cash flows for each of the three years in the period ended</font><font style="font-family:Arial;font-size:9pt;">&#32;</font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font 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;). </font><font style="font-family:Arial;font-size:9pt;">&#32;</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">2017</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, in conformity with accounting principles generally accepted in the United States of America. </font></div><div style="line-height:120%;padding-bottom:18px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, based on criteria established in the 2013 </font><font style="font-family:Arial;font-size:10pt;font-style:italic;">Internal Control-Integrated Framework</font><font style="font-family:Arial;font-size:10pt;">&#32;issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#8220;COSO&#8221;), and our report dated </font><font style="font-family:Arial;font-size:10pt;">February&#160;14, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;expressed an unqualified opinion. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basis for opinion </font></div><div style="line-height:120%;padding-bottom:18px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-bottom:18px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:24px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">/s/ GRANT THORNTON LLP</font></div><div style="line-height:174%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:174%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">We have served as the Company&#8217;s auditor since 2007. </font></div><div style="line-height:174%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:174%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Boston, Massachusetts</font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">February&#160;14, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;</font></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;">33</font></div></div><hr style="page-break-after:always"><div><a name="s0BCF6EA9C3515633900A9585E5652ACC"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF OPERATIONS</font></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%;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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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 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;"><font style="font-family:Arial;font-size:8pt;">2016</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></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;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">206,052</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">187,289</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">131,070</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">600,286</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">578,794</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">398,445</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">116,445</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">99,205</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,269</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Selling, general, and administrative expenses</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">262,699</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">220,728</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">166,110</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">221,142</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">258,861</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">154,066</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Foreign currency gain (loss)</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(1,064</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,601</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">101</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Investment income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">14,715</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,542</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Other income (expense)</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(219</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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 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;"><font style="font-family:Arial;font-size:10pt;">(338</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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 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;"><font style="font-family:Arial;font-size:10pt;">871</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income from continuing operations before income tax expense</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">234,574</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">266,464</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">162,077</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Income tax expense on continuing operations</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">15,307</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">89,752</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">18,128</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income from continuing operations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">219,267</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">176,712</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">143,949</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Net income (loss) from discontinued operations (Note 20)</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">(255</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">219,267</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">176,712</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">143,694</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basic earnings per weighted-average common and common-equivalent share (1):</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Net income from continuing operations</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1.27</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.02</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.84</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Net income (loss) from discontinued operations</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Net income</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1.27</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1.02</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.84</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></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:8px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:8px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:8px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:8px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:8px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:8px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></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;">Diluted earnings per weighted-average common and common-equivalent share (1):</font></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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Net income from continuing operations</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1.24</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.98</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.83</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Net income (loss) from discontinued operations</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Net income</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1.24</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.98</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.83</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Weighted-average common and common-equivalent shares outstanding (1):</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Basic</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">172,333</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">173,287</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">170,676</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Diluted</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">177,406</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">179,551</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">174,144</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:14px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:14px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:14px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash dividends per common share (1)</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">0.1850</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.1675</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.1475</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font 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.</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;"><br></font></div><div style="line-height:120%;text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</font></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;">34</font></div></div><hr style="page-break-after:always"><div><a name="s8194EC3A66E9540ABE850EEB30EB1ABA"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:inherit;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: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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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 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;"><font style="font-family:Arial;font-size:8pt;">2016</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">(In thousands)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">219,267</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">176,712</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">143,694</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Other comprehensive income (loss), net of tax:</font></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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Cash flow hedges:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Net unrealized gain (loss), net of tax of $0, ($5), and ($22) in 2018, 2017, and 2016, respectively</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(567</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Reclassification of net realized (gain) loss into current operations</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">(41</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">398</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Net change related to cash flow hedges</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(37</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(169</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Available-for-sale investments:</font></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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Net unrealized gain (loss), net of tax of ($188), $2, and $248 in 2018, 2017, and 2016, respectively</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(1,185</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">703</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,672</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Reclassification of net realized (gain) loss into current operations</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(501</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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 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;"><font style="font-family:Arial;font-size:10pt;">(829</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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 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;"><font style="font-family:Arial;font-size:10pt;">(191</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Net change related to available-for-sale investments</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(1,686</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(126</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,481</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:16px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:16px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:16px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Foreign currency translation adjustments:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Foreign currency translation adjustments, net of tax of $0, $0 and ($228) in 2018, 2017, and 2016, respectively</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(4,216</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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 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;"><font style="font-family:Arial;font-size:10pt;">21,992</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">(5,616</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Net change related to foreign currency translation adjustments</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(4,216</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">21,992</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">(5,616</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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;height:20px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:20px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:20px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other comprehensive income gain (loss), net of tax</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(5,902</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">21,829</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">(4,304</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></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;">Total comprehensive income</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">213,365</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">198,541</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">139,390</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;font-size:72pt;"><font style="font-family:inherit;font-size:72pt;">&#160;</font></div><div style="line-height:120%;font-size:72pt;"><font style="font-family:inherit;font-size:72pt;"><br></font></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</font></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;">35</font></div></div><hr style="page-break-after:always"><div><a name="sF1729D34E01A5019BA23CA87B0741A14"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED BALANCE SHEETS</font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:inherit;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:100%;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="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">(In thousands)</font></div></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-weight:bold;">ASSETS</font></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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></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;">Current assets:</font></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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">108,212</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">106,582</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Short-term investments</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">427,348</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">297,961</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable, less reserves of $1,646 and $1,568 in 2018 and 2017, respectively</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">119,172</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">119,388</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Unbilled revenue</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">8,312</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,454</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">83,282</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">67,923</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">34,000</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">30,683</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Total current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">780,326</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">629,991</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Long-term investments</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">262,039</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">423,441</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment, net</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">91,396</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,048</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">113,208</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">113,208</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Intangible assets, net</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,113</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,189</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Deferred income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">28,660</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27,385</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other assets</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,925</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">2,491</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Total assets</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,289,667</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1,287,753</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></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-weight:bold;">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</font></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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Current liabilities:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">16,230</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">23,463</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">60,220</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">68,249</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accrued income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,062</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,503</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Deferred revenue and customer deposits</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,845</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">9,420</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Total current liabilities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">91,357</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">112,635</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">962</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">312</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Reserve for income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,106</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,488</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">51,113</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">66,741</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Other non-current liabilities</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,866</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">5,904</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Total liabilities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">154,404</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">192,080</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Commitments and contingencies (Note 10)</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Shareholders&#8217; equity (1):</font></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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Common stock, $.002 par value &#8211; Authorized: 300,000 and 200,000 shares in 2018 and 2017, respectively, issued and outstanding:</font></div><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">170,820 and 173,507 shares in 2018 and 2017, respectively</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">342</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">347</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Additional paid-in capital</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">529,208</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">461,338</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Retained earnings</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">646,214</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">668,587</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accumulated other comprehensive loss, net of tax</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(40,501</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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 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;"><font style="font-family:Arial;font-size:10pt;">(34,599</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Total shareholders&#8217; equity</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,135,263</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">1,095,673</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,289,667</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1,287,753</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="8" 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;">(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.</font></div><div style="font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></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%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</font></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;">36</font></div></div><hr style="page-break-after:always"><div><a name="sBD4EA88F88A159E18AB56F9152B7FCF7"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF CASH FLOWS</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:inherit;font-size:9pt;">&#160;</font><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;"><font style="font-family:inherit;font-size:9pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Year Ended December&#160;31,</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 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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:9pt;">2017</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 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;"><font style="font-family:Arial;font-size:9pt;">2016</font></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;"><font style="font-family:inherit;font-size:9pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;">(In thousands)</font></div></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;"><font style="font-family:Arial;font-size:9pt;">Cash flows from operating activities:</font></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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;">Net income</font></div></td><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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">219,267</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">176,712</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">143,694</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Adjustments to reconcile net income to net cash provided by operating activities:</font></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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;">Loss on sale of discontinued business</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">255</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Stock-based compensation expense</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">41,090</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">31,942</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">20,558</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Depreciation of property, plant, and equipment</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">18,473</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">13,683</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">11,678</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Amortization of intangible assets</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">3,076</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">3,308</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">3,391</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Impairment of intangible assets</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">469</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Amortization of discounts or premiums on investments</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">108</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">205</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">383</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Realized (gain) loss on sale of investments</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(501</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(829</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(1,506</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Revaluation of contingent consideration</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(3</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(28</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(463</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Change in deferred income taxes</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(413</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">1,787</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(1,908</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Changes in operating assets and liabilities:</font></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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;">Accounts receivable</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(1,867</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(55,185</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(13,251</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Unbilled revenue</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(906</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(4,604</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(2,308</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Inventories</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(16,946</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(37,088</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">10,409</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Prepaid expenses and other current assets</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(9,750</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(7,016</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(5,421</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Accounts payable</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(7,247</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">12,322</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">2,087</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Accrued expenses</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">380</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">14,476</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">7,771</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Accrued income taxes</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(21,903</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">71,335</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">1,270</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Deferred revenue and customer deposits</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">1,434</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">1,619</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">3,622</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Other</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(838</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:9pt;">1,215</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:9pt;">1,820</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Net cash provided by operating activities</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">223,454</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">224,323</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">182,081</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cash flows from investing activities:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;">Purchases of investments</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(782,032</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(636,856</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(751,868</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Maturities and sales of investments</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">812,565</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">584,464</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">657,250</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Purchases of property, plant, and equipment</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(37,095</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(28,754</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(12,816</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Cash paid for acquisition of business, net of cash acquired</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(4,265</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(24,118</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(14,285</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Net cash paid from sale of discontinued business</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:9pt;">(291</font></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;"><font style="font-family:Arial;font-size:9pt;">)</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 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;"><font style="font-family:Arial;font-size:9pt;">(113</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Net cash used in investing activities</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(10,827</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(105,555</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(121,832</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></div></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;"><font style="font-family:Arial;font-size:9pt;">Cash flows from financing activities:</font></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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;">Issuance of common stock under stock plans</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">26,783</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">54,557</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">43,468</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:9pt;">Repurchase of common stock</font></div></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(203,822</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(123,715</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(47,149</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Payment of dividends</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(31,865</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(29,037</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(25,213</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Payment of contingent consideration</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(1,000</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</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 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;"><font style="font-family:Arial;font-size:9pt;">(1,926</font></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;"><font style="font-family:Arial;font-size:9pt;">)</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 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;"><font style="font-family:Arial;font-size:9pt;">(337</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></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;"><font style="font-family:Arial;font-size:9pt;">Net cash used in financing activities</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(209,904</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(100,121</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">(29,231</font></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;"><font style="font-family:Arial;font-size:9pt;">)</font></div></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;"><font style="font-family:Arial;font-size:9pt;">Effect of foreign exchange rate changes on cash and cash equivalents</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">(1,093</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">)</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 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;"><font style="font-family:Arial;font-size:9pt;">8,294</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:9pt;">(3,352</font></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;"><font style="font-family:Arial;font-size:9pt;">)</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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Net change in cash and cash equivalents</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">1,630</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">26,941</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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:9pt;"><font style="font-family:Arial;font-size:9pt;">27,666</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;"><font style="font-family:Arial;font-size:9pt;">Cash and cash equivalents at beginning of year</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">106,582</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:9pt;">79,641</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:9pt;">51,975</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cash and cash equivalents at end of year</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">108,212</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">106,582</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">79,641</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</font></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;">37</font></div></div><hr style="page-break-after:always"><div><a name="s41FD9DBCD26D5BB5919FE34C24CDECC5"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:inherit;font-size:9pt;">&#160;</font><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;"><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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Common Stock (1)</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Additional</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Paid-in</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Capital (1)</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Retained</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Earnings (1)</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Accumulated</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Comprehensive</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Loss</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Shareholders&#8217;</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Equity</font></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;"><font style="font-family:Arial;font-size:8pt;">(In thousands)</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Par&#160;Value</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></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:8pt;"><font style="font-family:Arial;font-size:8pt;">Balance as of December 31, 2015</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;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">169,712</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></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;"><font style="font-family:Arial;font-size:8pt;">340</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></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;"><font style="font-family:Arial;font-size:8pt;">310,829</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></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;"><font style="font-family:Arial;font-size:8pt;">573,286</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></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;"><font style="font-family:Arial;font-size:8pt;">(52,124</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></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;"><font style="font-family:Arial;font-size:8pt;">832,331</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Issuance of common stock under stock plans</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">3,954</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">8</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">43,460</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">43,468</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Repurchase of common stock</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(1,788</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(4</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(47,145</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(47,149</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Stock-based compensation expense</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">20,558</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">20,558</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Payment of dividends</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(25,213</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(25,213</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Net income</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">143,694</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">143,694</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Net unrealized gain (loss) on cash flow hedges, net of tax of ($22)</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(567</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(567</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Reclassification of net realized (gain) loss on cash flow hedges</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">398</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">398</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Net unrealized gain (loss) on available-for-sale investments, net of tax of $248</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">1,672</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">1,672</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(191</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(191</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Foreign currency translation adjustment, net of tax of ($228)</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;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:8pt;">(5,616</font></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;"><font style="font-family:Arial;font-size:8pt;">)</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 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;"><font style="font-family:Arial;font-size:8pt;">(5,616</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">171,878</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">344</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">374,847</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">644,622</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(56,428</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></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;"><font style="font-family:Arial;font-size:8pt;">963,385</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Issuance of common stock under stock plans</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">4,162</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">8</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">54,549</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">54,557</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Repurchase of common stock</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(2,533</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(5</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(123,710</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(123,715</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Stock-based compensation expense</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">31,942</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">31,942</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Payment of dividends</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(29,037</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(29,037</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Net income</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">176,712</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">176,712</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Net unrealized gain (loss) on cash flow hedges, net of tax of ($5)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">4</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">4</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Reclassification of net realized (gain) loss on cash flow hedges</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(41</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(41</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Net unrealized gain (loss) on available-for-sale investments, net of tax of $2</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">703</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">703</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(829</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(829</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Foreign currency translation adjustment, net of tax of $0</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">21,992</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">21,992</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Balance as of December 31, 2017</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">173,507</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">347</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">461,338</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">668,587</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(34,599</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">1,095,673</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Issuance of common stock under stock plans</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">1,493</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">3</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">26,780</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">26,783</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Repurchase of common stock</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(4,180</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(8</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(203,814</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(203,822</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Stock-based compensation expense</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">41,090</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">41,090</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Payment of dividends</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(31,865</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(31,865</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font 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 17)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(5,961</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(5,961</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Net income</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">219,267</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">219,267</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($188)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(1,185</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(1,185</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</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;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(501</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(501</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;">Foreign currency translation adjustment, net of tax of $0</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;">(4,216</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:8pt;">(4,216</font></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;"><font style="font-family:Arial;font-size:8pt;">)</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance as of December 31, 2018</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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">170,820</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">342</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">529,208</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">646,214</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(40,501</font></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:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">)</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;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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">1,135,263</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:6px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font 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.</font></div><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</font></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;">38</font></div></div><hr style="page-break-after:always"><div><a name="sC0BB69B37052571FBB80CD9BE7E294BA"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;font-size:6pt;"><font style="font-family:Arial;font-size:6pt;"><br></font></div><div><a name="s8E6B7CC81132511A9A9418164FF8B8B1"></a></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 1:&#160;&#160;Summary of Significant Accounting Policies</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Nature of Operations</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 tasks, primarily in manufacturing processes, where vision is required.</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Use of Estimates in the Preparation of Financial Statements</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Basis of Consolidation</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Foreign Currency Translation</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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).</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Fair Value Measurements</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Cash, Cash Equivalents, and Investments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Money market instruments and debt securities  with original maturities of three months or less are classified as cash equivalents and are stated at amortized cost.  Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments, as well as equity securities that the Company intends to sell within one year.  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 </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;">&#32;years.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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).  Equity securities that are held for short periods of time with the intention of selling them in the near term are designated as trading and are reported at fair value, with unrealized gains and losses recorded in current operations.  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 </font><font style="font-family:Arial;font-size:10pt;">5%</font><font style="font-family:Arial;font-size:10pt;">&#32;of the partnership and the Company has no influence over the partnership&#8217;s operating and financial </font></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;">39</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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). </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Inventories</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Property, Plant, and Equipment</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">39</font><font style="font-family:Arial;font-size:10pt;">&#32;years, building improvements&#8217; useful lives are </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;">&#32;years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from </font><font style="font-family:Arial;font-size:10pt;">two</font><font style="font-family:Arial;font-size:10pt;">&#32;to </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;">&#32;years.  Leasehold improvements are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases.  Maintenance and repairs are expensed when incurred; additions and improvements are capitalized.  Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Internal-use Software</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font></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;">40</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Goodwill</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Intangible Assets</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">eleven</font><font style="font-family:Arial;font-size:10pt;">&#32;to </font><font style="font-family:Arial;font-size:10pt;">twelve</font><font style="font-family:Arial;font-size:10pt;">&#32;years, of completed technologies from </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;">&#32;to </font><font style="font-family:Arial;font-size:10pt;">seven</font><font style="font-family:Arial;font-size:10pt;">&#32;years, of customer relationships from </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;">&#32;to </font><font style="font-family:Arial;font-size:10pt;">eight</font><font style="font-family:Arial;font-size:10pt;">&#32;years, and of non-compete agreements </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;">&#32;years.  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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Warranty Obligations</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">one</font><font style="font-family:Arial;font-size:10pt;">&#32;to </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;">&#32;years 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Contingencies</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></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;">41</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue Recognition</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Contract with the Customer</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Performance Obligations in the Contract</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.   </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Determining the Transaction Price</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Allocating the Transaction Price to the Performance Obligations</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></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;">42</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">30</font><font style="font-family:Arial;font-size:10pt;">&#32;to </font><font style="font-family:Arial;font-size:10pt;">90</font><font style="font-family:Arial;font-size:10pt;">&#32;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.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Research and Development</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Advertising Costs</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Advertising costs are expensed as incurred and totaled </font><font style="font-family:Arial;font-size:10pt;">$1,662,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$1,679,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$1,674,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock-Based Compensation</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s share-based payments that result in compensation expense consist of stock option grants and restricted stock awards.  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 granting of restricted stock.  When a stock option is exercised or a restricted stock award is granted, 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company recognizes compensation expense related to stock options 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 as if the option were, in substance, multiple awards.  The amount of compensation expense recognized at the end of the vesting period is based upon the number of stock options for which the requisite service has been completed. No compensation expense is recognized for options 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 option.  The Company applies estimated forfeiture rates to its unvested options 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 option, 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 a credit to expense is recorded related to those employees that have not rendered the requisite service.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></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;">43</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Taxes</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Net Income Per Share</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Comprehensive Income</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, as of December 31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;and December 31, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, consists of foreign currency translation adjustments of </font><font style="font-family:Arial;font-size:10pt;">$37,486,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$33,270,000</font><font style="font-family:Arial;font-size:10pt;">, respectively; net unrealized losses on available-for-sale investments of </font><font style="font-family:Arial;font-size:10pt;">$1,744,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$58,000</font><font style="font-family:Arial;font-size:10pt;">, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of </font><font style="font-family:Arial;font-size:10pt;">$1,271,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in each year. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Amounts reclassified from accumulated other comprehensive income to investment income on the Consolidated Statements of Operations were net realized gains of </font><font style="font-family:Arial;font-size:10pt;">$501,000</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$829,000</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$191,000</font><font style="font-family:Arial;font-size:10pt;">&#32;for </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">, respectively.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Concentrations of Risk</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></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;">44</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Derivative Instruments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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; </font></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;">45</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Business Combinations</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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. </font></div><div><a name="s511BAA02580A5373AD506209B6D53429"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 2:  New Pronouncements</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2016-02, 2018-11, and 2018-20, "Leases"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2016-02 creates Topic 842, Leases.  The objective of this ASU is to increase transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet, and disclosing key information about leasing arrangements.  This ASU applies to any entity that enters into a lease, although lessees will see the most significant changes.  The main difference between prior GAAP and Topic 842 is the recognition of lease assets and lease liabilities on the balance sheet for those leases classified as operating leases under prior GAAP.  Topic 842 distinguishes between finance leases and operating leases, which are substantially similar to the classification criteria for distinguishing between capital leases and operating leases under prior GAAP.  For public companies, the guidance in ASU 2016-02 is effective for annual periods beginning after December 15, 2018, and interim periods within those fiscal years.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In July 2018, the Financial Accounting Standards Board issued ASU 2018-11 to amend ASU 2016-02 and provided an additional (and optional) transition method to adopt the new lease standard.  This transition method allows entities to apply the new lease standard at the adoption date and recognize a cumulative-effect adjustment to the opening balance of retained earnings in the period of adoption instead of using the original modified retrospective transition method of adoption which required the restatement of all prior-period financial statements.  Under this new transition method, the comparative periods in the financial statements will continue to be presented in accordance with prior GAAP.  Management will adopt the new lease standard on a prospective basis using this new transition method under ASU 2018-11.  In December 2018, the Financial Accounting Standards Board issued ASU 2018-20 to provide additional implementation guidance.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of the date of this report, management has determined the scope of leases subject to the new accounting requirements, completed the implementation of a lease software package to assist with compliance, trained relevant employees, and finalized the lease accounting policy as well as the related business processes and internal controls.  Management expects the adoption of the new lease rule will result in the recognition of lease assets and lease liabilities of approximately </font><font style="font-family:Arial;font-size:10pt;">$20,000,000</font><font style="font-family:Arial;font-size:10pt;">&#32;on the Consolidated Balance Sheet.  Management does not expect the adoption to have a significant impact on the Statement of Operations or Statement of Cash Flows.  Furthermore, the adoption of this rule will result in additional lease disclosures. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2016-13, "Financial Instruments - Measurement of Credit Losses"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 (debt securities).&#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, </font></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;">46</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">including the use of reasonable and supportable forecasted information.&#160; The amendments in this ASU require that credit losses on available-for-sale debt securities 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.  For public companies, the guidance in ASU 2016-13 is effective for annual periods beginning after December 15, 2019, and interim periods within those fiscal years.&#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.&#160; Management does not expect ASU 2016-13 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2017-08, "Receivables - Nonrefundable Fees and Other Costs - Premium Amortization on Purchased Callable Debt Securities"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2017-08 applies to all reporting entities that hold investments in callable debt securities that have an amortized cost basis in excess of the amount that is repayable by the issuer at the earliest call date (that is, at a premium). The amendments in this ASU shorten the amortization period for certain callable debt securities held at a premium. Specifically, the amendments require the premium to be amortized to the earliest call date.  The amendments do not require an accounting change for securities held at a discount; the discount continues to be amortized to maturity.   Under current GAAP, premiums and discounts on callable debt securities generally are amortized to the maturity date. If that callable debt security is subsequently called, the entity records a loss equal to the unamortized premium.  The amendments in this ASU more closely align the amortization period of premiums and discounts to expectations incorporated in market pricing on the underlying securities.  For public companies, the amendments in ASU 2017-08 are effective for annual periods beginning after December 15, 2019, and interim reporting periods within fiscal years beginning after December 15, 2020.  This ASU should be applied on a modified retrospective basis through a cumulative-effect adjustment directly to retained earnings as of the beginning of the period of adoption, and, in the period of adoption, the entity is required to provide disclosures about the change in accounting principle.  Early adoption is permitted, including adoption in an interim period.  Management does not expect ASU 2017-08 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2017-12, "Derivatives and Hedging - Targeted Improvements to Accounting for Hedging Activities"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2017-12 applies to all reporting entities that elect to apply hedge accounting.  The hedge accounting requirements under current GAAP sometimes do not permit an entity to properly recognize the economic results of the hedging strategy in the financial statements, and they are difficult to understand and interpret.  The amendments in this ASU make certain targeted improvements to simplify the application of the hedge accounting guidance.  Also, they better align the risk management activities and financial reporting for hedging relationships through changes to both 1) the designation and measurement guidance for qualifying hedging relationships and 2) the presentation of hedge results.  For public companies, the amendments in ASU 2017-12 are effective for annual reporting periods beginning after December 15, 2018, and interim reporting periods within those fiscal years.  Early adoption is permitted including adoption in any interim period after issuance of the ASU.  All transition requirements and elections should be applied to hedging relationships existing on the date of adoption.  The entity should apply a cumulative-effect adjustment related to eliminating the separate measurement of ineffectiveness to accumulated other comprehensive income with a corresponding adjustment to the opening balance of retained earnings as of the beginning of the fiscal year that an entity adopts the amendments in this ASU.  The amended presentation and disclosure guidance is required only prospectively.  Management does not expect ASU 2017-12 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-01, "Land Easement Practical Expedient for Transition to Topic 842"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2018-01 applies to entities with land easements that exist or expired before an entity&#8217;s adoption of Topic 842, provided that the entity does not account for those land easements as leases under Topic 840.  The amendments in this ASU permit an entity to elect an optional transition practical expedient to not evaluate under Topic 842 land easements that exist or expired before the entity&#8217;s adoption of Topic 842 and that were not previously accounted for as leases under Topic 840.  An entity that elects this practical expedient should apply the practical expedient consistently to all of its existing or expired land easements that were not previously accounted for as leases under Topic 840.  Once an entity adopts Topic 842, it should apply that Topic prospectively to all new (or modified) land easements to determine whether the arrangement should be accounted for as a lease.  An entity that does not elect this practical expedient should evaluate all existing or expired land easements in connection with the adoption of the new lease requirements in Topic 842 to assess whether they meet the definition of a lease.  The amendments in this ASU affect the amendments in ASU 2016-02, which are not yet effective but may be early adopted.  The effective date and transition requirements for the amendments are the same as the effective date and transition requirements in ASU 2016-02, which is for annual </font></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;">47</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">periods beginning after December 15, 2018, and interim periods within those fiscal years.  Management does not expect ASU 2018-01 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-02, "Income Statement - Reporting Comprehensive Income"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2018-02 applies to entities required to apply the provisions of Topic 220, Income Statement - Reporting Comprehensive Income, and has items of other comprehensive income for which the related tax effects are presented in other comprehensive income as required by GAAP.  The amendments in this ASU allow a reclassification from accumulated other comprehensive income to retained earnings for stranded tax effects resulting from the Tax Cuts and Jobs Act of 2017 (the "Tax Act").  Consequently, the amendments eliminate the stranded tax effects resulting from the Tax Act and will improve the usefulness of information reported to financial statement users.  However, because the amendments only relate to the reclassification of the income tax effects of the Tax Act, the underlying guidance that requires the effect of a change in tax laws or rates to be included in income from continuing operations is not affected.  The amendments in this ASU also require certain disclosures about stranded tax effects.  The amendments in this ASU are effective for all entities for fiscal years beginning after December 15, 2018, and interim periods within those fiscal years.  Early adoption of the amendments in this ASU is permitted, including adoption in any interim period.  The amendments in this ASU should be applied either in the period of adoption or retrospectively to each period (or periods) in which the effect of the change in the U.S. federal corporate income tax rate in the Tax Act is recognized.  Management does not expect ASU 2018-02 to have a material impact on the Company's financial statements and disclosures. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-07, "Compensation - Stock Compensation - Improvements to Nonemployee Share-Based Payment Accounting"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2018-07 applies to all entities that enter into share-based payment transactions for acquiring goods and services from nonemployees.  The amendments in this ASU expand the scope of Topic 718, Compensation - Stock Compensation, to include share-based payments transactions to nonemployees.  Changes to the accounting for nonemployee awards as a result of this ASU include: 1) equity-classified nonemployee share-based payment awards are measured at the grant date, instead of the previous requirement to remeasure the awards through the performance completion date, 2) for awards with performance conditions, compensation cost is recognized when the achievement of the performance condition is probable, rather than upon achievement, and 3) the current requirement to reassess the classification (equity or liability) for nonemployee awards upon vesting is eliminated.  This ASU clarifies that Topic 718 does not apply to financing transactions or awards granted to customers as part of a contract accounted for under Topic 606, Revenue from Contracts with Customers.  The amendments in this ASU are effective for public business entities for fiscal years beginning after December 15, 2018, and interim periods within those fiscal years.  An entity should only remeasure liability-classified awards that have not been settled by the date of adoption and equity-classified awards for which the measurement date has not been established through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption.  Management does not expect ASU 2018-07 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 fiscal years beginning after December 15, 2019, and interim periods within those fiscal years, with early adoption permitted.  Management does not expect ASU 2018-15 to have a material impact on the Company's financial statement and disclosures.</font></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;">48</font></div></div><hr style="page-break-after:always"><div><a name="s60E81FDC935757BBBC7D9CC29C52F268"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 3:&#160;&#160;Fair Value Measurements</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;(in thousands):</font><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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Quoted&#160;Prices&#160;in</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Active Markets</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">for Identical</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Assets (Level&#160;1)</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Significant&#160;Other</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Observable</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Inputs (Level&#160;2)</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unobservable Inputs                       (Level 3)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Assets:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Money market instruments</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,557</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">300,437</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">231,237</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">132,038</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,417</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,337</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</font></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="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Liabilities:</font></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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">106</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Contingent consideration liabilities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,544</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;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;">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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company did not record an other-than-temporary impairment of these financial assets in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, or </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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. </font></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;">49</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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):</font></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;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,173</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Payment of EnShape contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,401</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Payment of Manatee contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(525</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Contingent consideration resulting from GVi acquisition</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,299</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Manatee contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(325</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">15</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">282</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes </font></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;"><font style="font-family:Arial;font-size:10pt;">39</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;background-color:#cceeff;">Balance as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,557</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Manatee contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,350</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">282</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,065</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Payment of GVi contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,000</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,554</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 AQSense acquisition was impaired and reduced this value to zero, resulting in an impairment charge of </font><font style="font-family:Arial;font-size:10pt;">$469,000</font><font style="font-family:Arial;font-size:10pt;">.  The Company did not record an impairment charge related to non-financial assets in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;or </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.</font></div><div><a name="sF0AD3CF8CA645DF2AAB9E4E16A8EC74C"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 4:&#160;&#160;Cash, Cash Equivalents, and Investments</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash, cash equivalents, and investments consisted of the following (in thousands):</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: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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">104,655</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">97,951</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Money market instruments</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,557</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">8,631</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">108,212</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">106,582</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">198,477</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">150,371</font></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">137,871</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">47,395</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">78,407</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">59,203</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">8,101</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">21,579</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,492</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,805</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">10,608</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Short-term investments</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">427,348</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">297,961</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">162,566</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">296,014</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">53,631</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">71,727</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">32,760</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">23,459</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,316</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,147</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,890</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">845</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">4,204</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Long-term investments</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">262,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">423,441</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">797,599</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">827,984</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;">50</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s cash balance included foreign bank balances totaling </font><font style="font-family:Arial;font-size:10pt;">$67,502,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$66,777,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, respectively.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills consist of debt securities issued by the U.S. government; corporate bonds consist of debt securities issued by both domestic and foreign companies; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;(in thousands):</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="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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortized</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Cost</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gains</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Losses</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Fair Value</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Short-term:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">198,512</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">38</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(73</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">198,477</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">138,219</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(375</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">137,871</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,628</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">15</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(236</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,407</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,135</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(34</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,101</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,492</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,492</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-term:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">163,847</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">107</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,388</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,566</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">53,693</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">55</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(117</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">53,631</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,722</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">51</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(13</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,760</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,316</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,930</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(9</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">855</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">845</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">691,319</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">323</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(2,255</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">689,387</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;(in thousands):</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: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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Position For Less than</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">12 Months</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss<br>Position For Greater than<br>12 Months</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Losses</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br>Losses</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br>Losses</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">145,596</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,268</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">99,886</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(495</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">245,482</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,763</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></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;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">114,836</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(73</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,850</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(13</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">128,686</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(86</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">47,762</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(91</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">44,585</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(262</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">92,347</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(353</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,492</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(4</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,609</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(30</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,101</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(34</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency Bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,920</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(9</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,920</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(9</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></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;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,302</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">845</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,147</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">318,908</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(1,445</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">163,775</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(810</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">482,683</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(2,255</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company recorded gross realized gains on the sale of debt securities totaling </font><font style="font-family:Arial;font-size:10pt;">$669,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$929,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$292,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2016, and gross realized losses on the sale of debt securities totaling </font><font style="font-family:Arial;font-size:10pt;">$168,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$100,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$101,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2016.  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). </font></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;">51</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;(in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="28"></td></tr><tr><td style="width:25%;"></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: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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">&lt;1&#160;Year</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">1-2&#160;Years</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2-3&#160;Years</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">3-4&#160;Years</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">4-5&#160;Years</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">5-7&#160;Years</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">137,871</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">81,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">56,459</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">20,060</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">4,126</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">300,437</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">198,477</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,760</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">231,237</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,407</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27,665</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,715</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,004</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,416</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,831</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">132,038</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,101</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,316</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,417</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,492</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">845</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,337</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">427,348</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">149,507</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">64,174</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">36,985</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,542</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,831</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">689,387</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div><a name="s2BEE7F992AE25CFC8947F418D3B42842"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 5:&#160;&#160;Inventories</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventories consisted of the following (in thousands):</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: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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Raw materials</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">42,738</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">33,927</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Work-in-process</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,435</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,114</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Finished goods</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">37,109</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">31,882</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">83,282</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">67,923</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div><a name="s37C5F2699E4859F690183CF66B181411"></a></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 6:&#160;&#160;Property, Plant, and Equipment</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment consisted of the following (in thousands):</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: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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Land</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,951</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">3,951</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Buildings</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">24,533</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">24,589</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Building improvements</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">45,067</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">33,189</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Leasehold improvements</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,095</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,513</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Computer hardware and software</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">66,542</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">61,835</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Manufacturing test equipment</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">27,378</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">21,312</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Furniture and fixtures</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,904</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">6,363</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">183,470</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">157,752</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Less: accumulated depreciation</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(92,074</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">(79,704</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">91,396</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">78,048</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The cost of disposed property, plant, and equipment totaling </font><font style="font-family:Arial;font-size:10pt;">$6,367,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">$6,327,000</font><font style="font-family:Arial;font-size:10pt;">&#32;was removed from both the asset and accumulated depreciation balances in </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2017</font><font style="font-family:Arial;font-size:10pt;">, respectively.  Gains and losses on these disposals were immaterial in both periods.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Buildings include rental property with a cost basis of </font><font style="font-family:Arial;font-size:10pt;">$800,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$5,750,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, respectively, and accumulated depreciation of </font><font style="font-family:Arial;font-size:10pt;">$234,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$3,069,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, respectively.</font></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;">52</font></div></div><hr style="page-break-after:always"><div><a name="sD8F6FAA3A8FD5D8792DCE6457E4A841C"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 7:&#160;&#160;Goodwill</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The changes in the carrying value of goodwill were as follows (in thousands):</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: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;"><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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">95,280</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Acquisition of ViDi Systems, S.A. </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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,333</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Acquisition of GVi Ventures, Inc.</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,476</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Adjustment to EnShape goodwill</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 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;"><font style="font-family:Arial;font-size:10pt;">(1,881</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">113,208</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Balance as of December 31, 2018</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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">113,208</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.  </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">For its </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;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.</font></div><div><a name="s510227CFD37F54AFB7A626F0D388B922"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 8:&#160; Intangible Assets</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Amortized intangible assets consisted of the following (in thousands):</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="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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></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;"><font style="font-family:Arial;font-size:10pt;">Distribution networks</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">38,060</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">38,060</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,687</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,619</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,068</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">8,607</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,716</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,891</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Non-compete agreements</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">370</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">216</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">154</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">60,724</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">50,611</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,113</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></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;"><font style="font-family:Arial;font-size:10pt;">Distribution networks</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">38,060</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">38,060</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,687</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,181</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,506</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,607</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,202</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,405</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Non-compete agreements</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">370</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">92</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">278</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Balance as of December 31, 2017</font></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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">60,724</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">47,535</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">13,189</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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):</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: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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,701</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">2020</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,185</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">2022</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,691</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2023</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">989</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Thereafter</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">530</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,113</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;">53</font></div></div><hr style="page-break-after:always"><div><a name="sAB2C5AF7D1BF5FB7B53C53472149BC4A"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 9:&#160;&#160;Accrued Expenses</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses consisted of the following (in thousands):</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: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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2017</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Salaries, commissions, and payroll taxes</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">11,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,944</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Company bonuses</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,134</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,721</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Vacation</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,507</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,479</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Foreign retirement obligations</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,816</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,260</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Warranty obligations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,743</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,701</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Acquisition deferred and contingent liabilities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">431</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,022</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">23,550</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">24,122</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">60,220</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">68,249</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The changes in the warranty obligation were as follows (in thousands):</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: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;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,335</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,843</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(3,109</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></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;"><font style="font-family:Arial;font-size:10pt;">632</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,701</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,184</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(4,024</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></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;"><font style="font-family:Arial;font-size:10pt;">(118</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,743</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div><a name="s4DA4160A1C065E4EBB265BBF131BF48D"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 10:&#160;&#160;Commitments and Contingencies</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Commitments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, the Company had outstanding purchase orders totaling </font><font style="font-family:Arial;font-size:10pt;">$11,097,000</font><font style="font-family:Arial;font-size:10pt;">&#32;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 2018.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company conducts certain of its operations in leased facilities.  These lease agreements expire at various dates through 2025 and are accounted for as operating leases.  Certain of these leases contain renewal options, retirement obligations, escalation clauses, rent holidays, and leasehold improvement incentives.  Annual rental expense totaled </font><font style="font-family:Arial;font-size:10pt;">$8,186,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$6,738,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$6,090,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Future minimum rental payments under these agreements are as follows (in thousands):</font></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.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:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,086</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">2020</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,227</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">2022</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,918</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2023</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,209</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Thereafter</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,198</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">22,747</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;">54</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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 agreements that will expire in 2022.  The Company had an additional tenant whose lease expired in November 2018.  Annual rental income totaled </font><font style="font-family:Arial;font-size:10pt;">$1,116,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$1,474,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$1,911,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.  Rental income and related expenses are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations.  Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):</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:100%;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:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">2020</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">2022</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,228</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Contingencies</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div><a name="sEC01728655665DD5AFEE698BF378BB6A"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 11:&#160;&#160;Indemnification Provisions</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Under the terms of the Company&#8217;s sale of its Surface Inspection Systems Division (SISD) to AMETEK, Inc., the Company agreed to retain certain liabilities in connection with its business dealings occurring prior to the transaction closing date of July 6, 2015, and to indemnify AMETEK, Inc. in connection with these retained liabilities and for any breach of the representations and warranties made by the Company to AMETEK, Inc. in connection with the sale agreement itself, as is usual and customary in such transactions.  A binding arbitration was concluded in 2016 with respect to certain product performance claims made by an SISD customer, for which the Company remained responsible under the indemnity provisions of the sale transaction.  In that proceeding, the tribunal ordered the Company to pay the customer approximately </font><font style="font-family:Arial;font-size:10pt;">$326,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing a refund of the product purchase price.  The tribunal also ordered the customer to pay the Company approximately </font><font style="font-family:Arial;font-size:10pt;">$45,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing reimbursement of legal fees.  The net settlement of </font><font style="font-family:Arial;font-size:10pt;">$281,000</font><font style="font-family:Arial;font-size:10pt;">&#32;was recorded in discontinued operations in 2016.</font></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;">55</font></div></div><hr style="page-break-after:always"><div><a name="sC117333619AE598687E0D41273702CA8"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 12:&#160;&#160;Derivative Instruments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 enters 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 </font><font style="font-family:Arial;font-size:10pt;">45 days</font><font style="font-family:Arial;font-size:10pt;">&#32;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 </font><font style="font-family:Arial;font-size:10pt;">18 months</font><font style="font-family:Arial;font-size:10pt;">&#32;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, 2018 and 2017. </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company had the following outstanding forward contracts (in thousands): </font></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:50%;"></td><td style="width:11%;"></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2018</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2017</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Currency</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></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;"><font style="font-family:Arial;font-size:10pt;">Euro</font></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;"><font style="font-family:Arial;font-size:10pt;">23,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">26,330</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Japanese Yen</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">380,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,459</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">455,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,049</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">British Pound</font></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;"><font style="font-family:Arial;font-size:10pt;">2,500</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,204</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,650</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,232</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Korean Won</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,125,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,808</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,825,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,708</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Hungarian Forint</font></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;"><font style="font-family:Arial;font-size:10pt;">750,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,685</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">545,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,110</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Taiwanese Dollar</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">55,000</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,807</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">37,725</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,278</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Canadian Dollar</font></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;"><font style="font-family:Arial;font-size:10pt;">990</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">726</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Singapore Dollar</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">700</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">514</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Swiss Franc</font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,365</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,401</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</font></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;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Asset Derivatives</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 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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Liability Derivatives</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 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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#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 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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</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 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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#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 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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</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 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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2018</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 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;"><font style="font-family:Arial;font-size:9pt;">December 31, 2017</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="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2018</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 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;"><font style="font-family:Arial;font-size:9pt;">December 31, 2017</font></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;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></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;"><font style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</font></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;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">16</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;">Accrued expenses</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">106</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;">56</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font 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):</font><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Asset Derivatives</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Liability Derivatives</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2018</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 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;"><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2017</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="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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2018</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 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;"><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2017</font></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;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of recognized assets</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">16</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;">Gross amounts of recognized liabilities</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">106</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Gross amounts offset</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;">Gross amounts offset</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Net amount of assets presented</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">16</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;">Net amount of liabilities presented</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">106</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">13</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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):</font></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"></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;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Location in Financial Statements</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December 31,</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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 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;"><font style="font-family:Arial;font-size:8pt;">2016</font></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;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Designated as Hedging Instruments:</font></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;"><font style="font-family:Arial;font-size:10pt;">Gains (losses) recorded in shareholders' equity (effective portion)</font></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;"><font style="font-family:Arial;font-size:10pt;">Accumulated other comprehensive income (loss), net of tax</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">37</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;"><font style="font-family:Arial;font-size:10pt;">Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)</font></div></td><td style="vertical-align:bottom;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;">Revenue</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(438</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">41</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">(398</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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;height:13px;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;height:13px;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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="14" 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;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></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;"><font style="font-family:Arial;font-size:10pt;">Gains (losses) recognized in current operations</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;">Foreign currency gain (loss)</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;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(285</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">270</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">(515</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the changes in accumulated other comprehensive income (loss), net of tax, related to derivative instruments (in thousands):</font><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:79%;"></td><td style="width:1%;"></td><td style="width:19%;"></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;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">37</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Net unrealized gain (loss) on cash flow hedges</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Reclassification of net realized (gain) loss on cash flow hedges into current operations</font></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;"><font style="font-family:Arial;font-size:10pt;">(41</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;">57</font></div></div><hr style="page-break-after:always"><div><a name="s6e20f483a6cd449ebbd69ceee8b80654"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 13: Revenue Recognition</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On January 1, 2018, the Company adopted Accounting Standards Codification (ASC) 606, "Revenue from Contracts with Customers," using the full retrospective method to present all periods reported on a consistent basis.  Accordingly, prior-period results have been restated to apply the provisions of this ASC.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As a result of this adoption, revenue for software-only products sold as part of multiple-deliverable arrangements are no longer deferred when vendor-specific objective evidence of fair value does not exist for the undelivered elements of the arrangement.  This change results in earlier recognition of revenue.  In addition, certain of the Company&#8217;s product accessory sales, which were reported on a net basis, are now reported on a gross basis as a result of applying the expanded guidance in the new standard related to principal versus agent considerations.  This change results in the Company reporting higher revenue and higher cost of revenue when these sales are reported on a gross basis, although the gross margin dollars do not change.  Furthermore, for arrangements that include customer-specified acceptance criteria, revenue is recognized when the Company can objectively determine that control has been transferred to the customer in accordance with the agreed-upon specifications in the contract, which may occur before formal customer acceptance.  This change primarily impacts revenue recognition for arrangements in the logistics industry where certain customer solutions include installed ID products and results in earlier recognition of revenue.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The adoption of the standard impacted our previously-reported results as follows (in thousands): </font></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="12"></td></tr><tr><td style="width:58%;"></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: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;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Operations</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;Year Ended December 31, 2017</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 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;"><font style="font-family:Arial;font-size:10pt;">As previously reported</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 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;"><font style="font-family:Arial;font-size:10pt;">Adjustment</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 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;"><font style="font-family:Arial;font-size:10pt;">As restated</font></div></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;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">747,950</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,133</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></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;"><font style="font-family:Arial;font-size:10pt;">168,698</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">18,591</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">187,289</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">579,252</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(458</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">578,794</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">259,319</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(458</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">258,861</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Income before income tax expense</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">266,922</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(458</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">266,464</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</font></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;"><font style="font-family:Arial;font-size:10pt;">89,744</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">8</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">89,752</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Net income</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">177,178</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(466</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">176,712</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="4" 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;">Net income per weighted-average common and common-equivalent share:</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 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;"><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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Basic</font></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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1.02</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1.02</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Diluted</font></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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.99</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">(0.01</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.98</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></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="12"></td></tr><tr><td style="width:58%;"></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: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;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Operations</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31, 2016</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 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;"><font style="font-family:Arial;font-size:10pt;">As previously reported</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 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;"><font style="font-family:Arial;font-size:10pt;">Adjustment</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 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;"><font style="font-family:Arial;font-size:10pt;">As restated</font></div></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;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">520,753</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,762</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></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;"><font style="font-family:Arial;font-size:10pt;">115,590</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">15,480</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">131,070</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">405,163</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6,718</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">398,445</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">160,784</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6,718</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">154,066</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Income before income tax expense</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">168,795</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6,718</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,077</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</font></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;"><font style="font-family:Arial;font-size:10pt;">18,968</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">(840</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">18,128</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Net income</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">149,572</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(5,878</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">143,694</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="4" 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;">Net income per weighted-average common and common-equivalent share:</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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Basic</font></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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.88</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">(0.04</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.84</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Diluted</font></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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.86</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">(0.03</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">0.83</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;">58</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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="12"></td></tr><tr><td style="width:58%;"></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: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;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Balance Sheet</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2017</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 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;"><font style="font-family:Arial;font-size:10pt;">As previously reported</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 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;"><font style="font-family:Arial;font-size:10pt;">Adjustment</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 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;"><font style="font-family:Arial;font-size:10pt;">As restated</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30,800</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(117</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30,683</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Accrued income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,391</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">112</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,503</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred revenue and customer deposits</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,969</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(549</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,420</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Retained earnings</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">668,267</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">320</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">668,587</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></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:99.609375%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:58%;"></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: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;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Shareholders' Equity</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2016</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 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;"><font style="font-family:Arial;font-size:10pt;">As previously reported</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 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;"><font style="font-family:Arial;font-size:10pt;">Adjustment</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 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;"><font style="font-family:Arial;font-size:10pt;">As restated</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Retained Earnings</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">643,836</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">786</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">644,622</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></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:99.609375%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:58%;"></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: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;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Shareholders' Equity</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2015</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 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;"><font style="font-family:Arial;font-size:10pt;">As previously reported</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 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;"><font style="font-family:Arial;font-size:10pt;">Adjustment</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 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;"><font style="font-family:Arial;font-size:10pt;">As restated</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Retained Earnings</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">566,622</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,664</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">573,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font 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):</font></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;"><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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">2016</font></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;"><font style="font-family:Arial;font-size:10pt;">Americas</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">267,043</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">214,338</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,359</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Europe</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">307,965</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">328,826</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">230,311</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Greater China</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">126,109</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">108,738</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">66,179</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Other Asia</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">105,221</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">114,181</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">70,666</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">766,083</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">529,515</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes disaggregated revenue information by revenue type (in thousands):</font></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;"><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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">2016</font></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;"><font style="font-family:Arial;font-size:10pt;">Standard products and services</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">654,509</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">603,196</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">413,425</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Application-specific customer solutions</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">151,829</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,887</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">116,090</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">766,083</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">529,515</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;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;text-decoration:underline;">Costs to Fulfill a Contract</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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 $</font><font style="font-family:Arial;font-size:10pt;">3,514,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and $</font><font style="font-family:Arial;font-size:10pt;">3,230,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December 31, 2018 and 2017, respectively. </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><br></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">59</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></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%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable, Contract Assets, and Contract Liabilities</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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, 2018 and 2017.  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.</font></div><div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Amount</font></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;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,078</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">24,985</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Recognition of revenue</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(23,195</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></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;"><font style="font-family:Arial;font-size:10pt;">552</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,420</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">63,231</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Recognition of revenue</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(61,819</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(987</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,845</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></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%;text-align:justify;font-size:10pt;"><font 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.</font></div><div><a name="s3C5DC8D0977450DCA0CB1E92EB8C264A"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 14:&#160;&#160;Shareholders&#8217; Equity</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Preferred Stock</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company has </font><font style="font-family:Arial;font-size:10pt;">400,000</font><font style="font-family:Arial;font-size:10pt;">&#32;shares of authorized but unissued </font><font style="font-family:Arial;font-size:10pt;">$.01</font><font style="font-family:Arial;font-size:10pt;">&#32;par value preferred stock.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Common Stock</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">200,000,000</font><font style="font-family:Arial;font-size:10pt;">&#32;to </font><font style="font-family:Arial;font-size:10pt;">300,000,000</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">10,000,000</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;text-align:left;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;">In October 2017, the Company&#8217;s Board of Directors declared a </font><font style="font-family:Arial;font-size:10pt;">two</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">$.002</font><font style="font-family:Arial;font-size:10pt;">&#32;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.</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%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Each outstanding share of common stock entitles the record holder to </font><font style="font-family:Arial;font-size:10pt;">one</font><font style="font-family:Arial;font-size:10pt;">&#32;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.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Shareholder Rights Agreement</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On December 4, 2008, the Company adopted a Shareholder Rights Agreement to provide shareholders with the opportunity to benefit from the long-term prospects and value of the Company and to ensure that shareholders receive fair and equal treatment in the event of any proposed takeover of the Company.  The Shareholder Rights Agreement, </font></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;">60</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">which was previously filed by the Company with the Securities and Exchange Commission as an exhibit to the Registration Statement on Form&#160;8-A filed on December&#160;5, 2008, could have made it more difficult for a third party to acquire, or could have discouraged a third party from acquiring, the Company or a large block of the Company&#8217;s common stock.   The Company determined to allow the Shareholder Rights Agreement and associated rights to expire in accordance with their terms on December 5, 2018 without renewal.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Repurchases</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In April 2017, the Company's Board of Directors authorized the repurchase of </font><font style="font-family:Arial;font-size:10pt;">$100,000,000</font><font style="font-family:Arial;font-size:10pt;">&#32;of the Company's common stock.  The Company repurchased </font><font style="font-family:Arial;font-size:10pt;">1,744,000</font><font style="font-family:Arial;font-size:10pt;">&#32;shares at a cost of </font><font style="font-family:Arial;font-size:10pt;">$100,000,000</font><font style="font-family:Arial;font-size:10pt;">&#32;under this program, including </font><font style="font-family:Arial;font-size:10pt;">803,000</font><font style="font-family:Arial;font-size:10pt;">&#32;shares at a cost of </font><font style="font-family:Arial;font-size:10pt;">$45,200,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in the first quarter of 2018.  In February 2018, the Company's Board of Directors authorized the repurchase of  </font><font style="font-family:Arial;font-size:10pt;">$150,000,000</font><font style="font-family:Arial;font-size:10pt;">&#32;of the Company's common stock.  The Company repurchased </font><font style="font-family:Arial;font-size:10pt;">3,174,000</font><font style="font-family:Arial;font-size:10pt;">&#32;shares at a cost of </font><font style="font-family:Arial;font-size:10pt;">$150,000,000</font><font style="font-family:Arial;font-size:10pt;">&#32;under this program.  In October 2018, the Company's Board of Directors authorized the repurchase of </font><font style="font-family:Arial;font-size:10pt;">$200,000,000</font><font style="font-family:Arial;font-size:10pt;">&#32;of the Company's common stock.  As of December 31, 2018, the Company repurchased </font><font style="font-family:Arial;font-size:10pt;">203,000</font><font style="font-family:Arial;font-size:10pt;">&#32;shares at a cost of </font><font style="font-family:Arial;font-size:10pt;">$8,622,000</font><font style="font-family:Arial;font-size:10pt;">&#32;under this program, leaving a remaining balance of </font><font style="font-family:Arial;font-size:10pt;">$191,378,000</font><font style="font-family:Arial;font-size:10pt;">.  Total stock repurchases in 2018 amounted to </font><font style="font-family:Arial;font-size:10pt;">$203,822,000</font><font 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 options, stock price, share availability, and cash requirements.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Dividends</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s Board of Directors declared and paid cash dividends of </font><font style="font-family:Arial;font-size:10pt;">$0.0375</font><font style="font-family:Arial;font-size:10pt;">&#32;per share in the first quarter of 2017,  </font><font style="font-family:Arial;font-size:10pt;">$0.0425</font><font style="font-family:Arial;font-size:10pt;">&#32;in the second and third quarters of 2017, and </font><font style="font-family:Arial;font-size:10pt;">$0.0450</font><font style="font-family:Arial;font-size:10pt;">&#32;in the fourth quarter of 2017, as well as in the first, second, and third quarters of 2018.  The dividend was increased to </font><font style="font-family:Arial;font-size:10pt;">$0.0500</font><font style="font-family:Arial;font-size:10pt;">&#32;in the fourth quarter of 2018.  Total dividends amounted to </font><font style="font-family:Arial;font-size:10pt;">$31,865,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$29,037,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2018 and 2017, 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.</font></div><div><a name="sEE1F70295D755B9C9C477EE2ABE6DB6C"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 15:&#160;&#160;Stock-Based Compensation</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Option Plans</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s share-based payments that result in compensation expense consist of stock option grants and restricted stock awards.  As of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, the Company had </font><font style="font-family:Arial;font-size:10pt;">19,578,752</font><font style="font-family:Arial;font-size:10pt;">&#32;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 </font><font style="font-family:Arial;font-size:10pt;">four</font><font style="font-family:Arial;font-size:10pt;">&#32;or </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;">&#32;years based upon continuous service and expire </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;">&#32;years from the grant date.  Vesting of restricted stock awards may be based on continuing employment and/or achievement of pre-established performance goals and objectives.  Vesting of performance-based restricted stock awards and time-based restricted stock awards must not be less than </font><font style="font-family:Arial;font-size:10pt;">one</font><font style="font-family:Arial;font-size:10pt;">&#32;year and </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;">&#32;years, respectively; however, awards with time-based vesting may become vested incrementally over such three-year period.</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s stock option activity:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Exercise</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Price</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;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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Remaining</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Contractual</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Term</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;years)</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Aggregate</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Intrinsic Value</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2017</font></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;"><font style="font-family:Arial;font-size:10pt;">12,726</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">25.24</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Granted</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,997</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">52.67</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Exercised</font></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;"><font style="font-family:Arial;font-size:10pt;">(1,493</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17.94</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Forfeited or expired</font></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;"><font style="font-family:Arial;font-size:10pt;">(441</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">33.59</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,789</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">31.73</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7.36</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">146,270</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Exercisable as of December 31, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,556</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">20.94</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;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;font-weight:bold;">5.85</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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">82,716</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Options vested or expected to vest as of&#160;<br>&#160;December 31, 2018 (1)</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">12,499</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">30.60</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7.23</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">141,643</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font 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.</font></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;">61</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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:</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="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;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</font></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;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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 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;"><font style="font-family:Arial;font-size:8pt;">2016</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Risk-free rate</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2.9</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">2.4</font></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;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">1.7</font></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;"><font style="font-family:Arial;font-size:10pt;">%</font></div></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;">Expected dividend yield</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">0.35</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.40</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.83</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Expected volatility</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">39</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">41</font></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;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">41</font></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;"><font style="font-family:Arial;font-size:10pt;">%</font></div></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;">Expected term (in years)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5.4</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5.4</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5.6</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Risk-free rate</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected dividend yield</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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;</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected volatility</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected term</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company stratifies its employee population into </font><font style="font-family:Arial;font-size:10pt;">two</font><font style="font-family:Arial;font-size:10pt;">&#32;groups: one consisting of senior management and another consisting of all other employees.  The Company currently applies an estimated forfeiture rate of </font><font style="font-family:Arial;font-size:10pt;">8%</font><font style="font-family:Arial;font-size:10pt;">&#32;to all unvested options for senior management and a rate of </font><font style="font-family:Arial;font-size:10pt;">12%</font><font style="font-family:Arial;font-size:10pt;">&#32;for all other employees.  Each year during the first quarter, the Company revises its forfeiture rate.  This resulted in an increase to compensation expense of </font><font style="font-family:Arial;font-size:10pt;">$1,283,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2018, a decrease to compensation expense of </font><font style="font-family:Arial;font-size:10pt;">$673,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and an increase to compensation expense of </font><font style="font-family:Arial;font-size:10pt;">$334,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The weighted-average grant-date fair value of stock options granted was </font><font style="font-family:Arial;font-size:10pt;">$20.84</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$15.59</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$6.33</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The total intrinsic value of stock options exercised was </font><font style="font-family:Arial;font-size:10pt;">$52,629,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$136,672,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$55,580,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">. The total fair value of stock options vested was </font><font style="font-family:Arial;font-size:10pt;">$31,106,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$21,519,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$18,114,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, total unrecognized compensation expense related to non-vested stock options was </font><font style="font-family:Arial;font-size:10pt;">$49,229,000</font><font style="font-family:Arial;font-size:10pt;">, which is expected to be recognized over a weighted-average period of </font><font style="font-family:Arial;font-size:10pt;">1.56</font><font style="font-family:Arial;font-size:10pt;">&#32;years.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company's restricted stock activity: </font></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="11"></td></tr><tr><td style="width:46%;"></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><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:16%;"></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Shares                   (in thousands)</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Weighted-Average       Grant Fair Value</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 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Aggregate Intrinsic Value                  (in thousands)</font></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;"><font style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2017</font></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;"><font style="font-family:Arial;font-size:10pt;">20</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17.03</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Granted</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Vested</font></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;"><font style="font-family:Arial;font-size:10pt;">(20</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17.03</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">993</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Forfeited or expired</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2018</font></div></td><td 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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The fair values of restricted stock awards granted were determined based upon the market value of the Company's common stock at the time of grant.  The initial cost is then amortized over the period of vesting until the restrictions lapse.  These restricted shares were fully vested in 2018.  Participants are entitled to dividends on restricted stock </font></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;">62</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">awards, but only receive those amounts if the shares vest.  The sale or transfer of these shares is restricted during the vesting period.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The total stock-based compensation expense and the related income tax benefit recognized was </font><font style="font-family:Arial;font-size:10pt;">$41,090,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$7,317,000</font><font style="font-family:Arial;font-size:10pt;">, respectively, in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$31,942,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$10,473,000</font><font style="font-family:Arial;font-size:10pt;">, respectively, in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$20,558,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$6,747,000</font><font style="font-family:Arial;font-size:10pt;">, respectively, in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.  No compensation expense was capitalized in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, or </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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):</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="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;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</font></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;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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 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;"><font style="font-family:Arial;font-size:8pt;">2016</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,447</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1,881</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">1,052</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Research, development, and engineering</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">14,578</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,022</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,271</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Selling, general, and administrative</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">24,065</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">19,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,235</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">41,090</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">31,942</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">20,558</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div><a name="s37520CFE61285F0CB0120DDD0B2D2543"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 16:&#160;&#160;Employee Savings Plan</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">For the first ten months of 2018, under the Company&#8217;s Employee Savings Plan, a defined contribution plan, U.S. employees, who had attained age </font><font style="font-family:Arial;font-size:10pt;">21</font><font style="font-family:Arial;font-size:10pt;">&#32;and were not defined as highly compensated, could have contributed up to </font><font style="font-family:Arial;font-size:10pt;">50%</font><font style="font-family:Arial;font-size:10pt;">&#32;of their pay on a pre-tax basis subject to the annual dollar limitations established by the Internal Revenue Service (IRS).  Highly compensated employees as defined by the IRS, could have contributed up to </font><font style="font-family:Arial;font-size:10pt;">25%</font><font style="font-family:Arial;font-size:10pt;">&#32;of their pay on a pre-tax basis.  The Company matched </font><font style="font-family:Arial;font-size:10pt;">50%</font><font style="font-family:Arial;font-size:10pt;">&#32;of the first </font><font style="font-family:Arial;font-size:10pt;">6%</font><font style="font-family:Arial;font-size:10pt;">&#32;of pay an employee contributed.  Company contributions vested </font><font style="font-family:Arial;font-size:10pt;">20%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">40%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">60%</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">100%</font><font style="font-family:Arial;font-size:10pt;">&#32;after two, three, four, and five years of continuous employment with the Company, respectively.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On November 1, 2018, the Company changed the custodian of the Employee Savings Plan which altered  the contribution rate and vesting period.  Commencing on that date, all U.S. employees, whether they are determined to be highly compensated or not, who have attained age </font><font style="font-family:Arial;font-size:10pt;">21</font><font style="font-family:Arial;font-size:10pt;">&#32;may contribute up to </font><font style="font-family:Arial;font-size:10pt;">100</font><font style="font-family:Arial;font-size:10pt;">% of their pay on a pre-tax basis under the Company's Employee Savings Plan.  The Company still matches </font><font style="font-family:Arial;font-size:10pt;">50%</font><font style="font-family:Arial;font-size:10pt;">&#32;of the first </font><font style="font-family:Arial;font-size:10pt;">6%</font><font style="font-family:Arial;font-size:10pt;">&#32;of pay an employee contributes.  Company contributions vest </font><font style="font-family:Arial;font-size:10pt;">25%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">50%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">75%</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">100%</font><font style="font-family:Arial;font-size:10pt;">&#32;after one, two, three, and four years of continuous employment with the Company, respectively.  Company contributions totaled </font><font style="font-family:Arial;font-size:10pt;">$2,540,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$2,030,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$1,712,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font 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.</font></div><div><a name="s7A612995D3F05CAEA30F6473BD0DCFC1"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 17:&#160;&#160;Taxes</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Domestic income from continuing operations before taxes was </font><font style="font-family:Arial;font-size:10pt;">$39,042,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$30,345,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$23,939,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.  Foreign income from continuing operations before taxes was </font><font style="font-family:Arial;font-size:10pt;">$195,532,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$236,119,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$138,138,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.  </font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense on continuing operations consisted of the following (in thousands):</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="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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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 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;"><font style="font-family:Arial;font-size:8pt;">2016</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Current:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Federal</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,624</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,152</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,459</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">State</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(879</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,687</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(617</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Foreign</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,307</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">7,624</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">7,309</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">16,052</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">88,463</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">21,151</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Deferred:</font></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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Federal</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(1,271</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,569</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(3,031</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">State</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">554</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(639</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,066</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Foreign</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(28</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">359</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">(1,058</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(745</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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 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;"><font style="font-family:Arial;font-size:10pt;">1,289</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(3,023</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">15,307</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">89,752</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">18,128</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;">63</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font 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 on continuing operations, or effective tax rate, was as follows:</font><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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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 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;"><font style="font-family:Arial;font-size:8pt;">2016</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense at U.S. federal statutory corporate tax rate</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">21</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">35</font></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;"><font style="font-family:Arial;font-size:10pt;">&#160;%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">35</font></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;"><font style="font-family:Arial;font-size:10pt;">&#160;%</font></div></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;">State income taxes, net of federal benefit</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign tax rate differential</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(9</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(27</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(17</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></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;">Tax credit</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Discrete tax benefit related to employee stock option exercises</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(4</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(14</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(7</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></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;">Discrete tax expense (benefit) related to 2017 Tax Act</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(3</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">36</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Discrete tax expense related to write-down of deferred tax assets </font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Other discrete tax events</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Income tax expense on continuing operations</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">34</font></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;"><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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11</font></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;"><font style="font-family:Arial;font-size:10pt;">&#160;%</font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">The Tax Act</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$12,523,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2017 from the associated write-down of its deferred tax assets.  In 2018, the Company recorded an increase in tax expense of $</font><font style="font-family:Arial;font-size:10pt;">3,240,000</font><font style="font-family:Arial;font-size:10pt;">&#32;from the write-down of its deferred tax assets primarily relating to guidance under the Tax Act regarding stock-based compensation.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$101,379,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2017.  In 2018, the Company revised its estimate of the one-time transition tax and recorded a decrease in tax expense of </font><font style="font-family:Arial;font-size:10pt;">$11,028,000</font><font style="font-family:Arial;font-size:10pt;">, which resulted in a revised estimate for the one-time transition tax of </font><font style="font-family:Arial;font-size:10pt;">$90,351,000</font><font style="font-family:Arial;font-size:10pt;">&#32;payable over eight years.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$3,843,000</font><font style="font-family:Arial;font-size:10pt;">&#32;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.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company will continue to gather and analyze information on historical unrepatriated foreign earnings and monitor state laws relating to this income to finalize both the federal and state tax impact.  The Tax Act limits certain deductions and these limitations may impact the value of existing deferred tax assets.  The Company will continue to review the impact of these limitations as regulatory guidance is issued.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Other Discrete Tax Items</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The effective tax rate also included a decrease in tax expense of </font><font style="font-family:Arial;font-size:10pt;">$8,488,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2018, </font><font style="font-family:Arial;font-size:10pt;">$38,569,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2017, and </font><font style="font-family:Arial;font-size:10pt;">$11,889,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2016 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.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2018, tax expense included a provision for state income taxes of </font><font style="font-family:Arial;font-size:10pt;">$620,000</font><font style="font-family:Arial;font-size:10pt;">&#32;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 sufficient local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested resulting in the additional state income tax provision.  As of December 31, 2018 and 2017, </font><font style="font-family:Arial;font-size:10pt;">$446,346,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$498,653,000</font><font 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.</font></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;">64</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other discrete tax events resulted in a net decrease in tax expense of </font><font style="font-family:Arial;font-size:10pt;">$2,467,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2018 and a net decrease in tax expense of </font><font style="font-family:Arial;font-size:10pt;">$2,502,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2017, consisting primarily of i) the final true-up of the prior year's tax accrual upon filing the related tax returns and ii) the expiration of the statutes of limitations for certain reserves for income tax uncertainties. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  The statutory tax rate is 12.5% in Ireland and 25% in China, compared to the U.S. federal statutory corporate tax rate of 21%.  International rights to certain of the Company&#8217;s intellectual property are held by a subsidiary whose legal jurisdiction does not tax this income, resulting in a foreign effective tax rate lower than the above mentioned statutory rates.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Interest and penalties included in income tax expense was </font><font style="font-family:Arial;font-size:10pt;">$91,000</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$71,000</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$92,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in 2018, 2017, and 2016, respectively.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$5,961,000</font><font style="font-family:Arial;font-size:10pt;">&#32;through a cumulative-effect adjustment directly to retained earnings at the beginning of fiscal year 2018.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Tax Reserves</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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):</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: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;"><font style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,719</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits as a result of tax positions taken in prior periods</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(56</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,993</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits relating to settlements with taxing authorities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(116</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font 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</font></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;"><font style="font-family:Arial;font-size:10pt;">(791</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,749</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">69</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,499</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,023</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2018</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,294</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s reserve for income taxes, including gross interest and penalties, was </font><font style="font-family:Arial;font-size:10pt;">$8,134,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December 31, 2018, which included </font><font style="font-family:Arial;font-size:10pt;">$7,106,000</font><font style="font-family:Arial;font-size:10pt;">&#32;classified as a non-current liability and </font><font style="font-family:Arial;font-size:10pt;">$1,028,000</font><font style="font-family:Arial;font-size:10pt;">&#32;recorded as a reduction to non-current deferred tax assets.  The Company's reserve for income taxes, including gross interest and penalties, was </font><font style="font-family:Arial;font-size:10pt;">$7,516,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December 31, 2017, which included </font><font style="font-family:Arial;font-size:10pt;">$6,488,000</font><font style="font-family:Arial;font-size:10pt;">&#32;classified as a non-current liability and </font><font style="font-family:Arial;font-size:10pt;">$1,028,000</font><font style="font-family:Arial;font-size:10pt;">&#32;recorded as a reduction to non-current deferred tax assets.  The amount of gross interest and penalties included in these balances was </font><font style="font-family:Arial;font-size:10pt;">$840,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and </font><font style="font-family:Arial;font-size:10pt;">$767,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December&#160;31, 2018 and December&#160;31, 2017, 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 </font><font style="font-family:Arial;font-size:10pt;">$1,200,000</font><font style="font-family:Arial;font-size:10pt;">&#32;to </font><font style="font-family:Arial;font-size:10pt;">$1,300,000</font><font style="font-family:Arial;font-size:10pt;">&#32;over the next twelve months.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 2015 through 2018 remain open to examination by the Internal Revenue Service and various state taxing authorities.  The tax years 2014 through 2018 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2011, the Company finalized an Advanced Pricing Agreement (APA) with Japan that covers tax years 2006 through 2011, with a requested extension to 2012.  The Company has concluded negotiations for an APA between Japan and Ireland that covers tax years 2014 through 2018 with retroactive application to 2013. The Company is currently in negotiations to potentially extend this agreement through 2022.  The Company believes it is adequately reserved for these open years.</font></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;">65</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Deferred Tax Assets and Liabilities</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred tax assets and liabilities consisted of the following (in thousands):</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: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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-current deferred tax assets:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,818</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,664</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Federal and state tax credit carryforwards</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,395</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,707</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Bonuses, commissions, and other compensation</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,470</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,704</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Inventory and revenue related</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,233</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,415</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Depreciation</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,475</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,279</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Other</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,425</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">3,012</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Gross non-current deferred tax assets</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">34,816</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 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;"><font style="font-family:Arial;font-size:10pt;">32,781</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-current deferred tax liabilities:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Nondeductible intangible assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(44</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(87</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross non-current deferred tax liabilities</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(44</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:10pt;">(87</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></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;">Valuation allowance</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(6,112</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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 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;"><font style="font-family:Arial;font-size:10pt;">(5,309</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net non-current deferred tax assets</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">28,660</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">27,385</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-current deferred tax liabilities:</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></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;">&#160;&#160;Other</font></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:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(962</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</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;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(312</font></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;"><font style="font-family:Arial;font-size:10pt;">)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net non-current deferred tax liabilities</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(962</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">$</font></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;"><font style="font-family:Arial;font-size:10pt;">(312</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2018, the Company recorded a valuation allowance of </font><font style="font-family:Arial;font-size:10pt;">$803,000</font><font style="font-family:Arial;font-size:10pt;">&#32;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 </font><font style="font-family:Arial;font-size:10pt;">$8,423,000</font><font style="font-family:Arial;font-size:10pt;">&#32;of state research and development tax credit carryforwards, net of federal tax, as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, which will begin to expire in 2019.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash paid for income taxes totaled </font><font style="font-family:Arial;font-size:10pt;">$41,430,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$11,802,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$20,748,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div><a name="sECDA64EA7FFC5EAD8B87653AEE36326C"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 18:&#160;&#160;Weighted Average Shares</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Weighted-average shares were calculated as follows (in thousands):</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="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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</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 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;"><font style="font-family:Arial;font-size:8pt;">2017</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 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;"><font style="font-family:Arial;font-size:8pt;">2016</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basic weighted-average common shares outstanding</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">172,333</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">173,287</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">170,676</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Effect of dilutive stock options</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,073</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,264</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,468</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Diluted weighted-average common and common-equivalent shares outstanding</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">177,406</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">179,551</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:10pt;">174,144</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Stock options to purchase </font><font style="font-family:Arial;font-size:10pt;">2,650,164</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">3,363,141</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">4,391,598</font><font style="font-family:Arial;font-size:10pt;">&#32;shares of common stock, on a weighted-average basis, were outstanding in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">2016</font><font 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.</font></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;">66</font></div></div><hr style="page-break-after:always"><div><a name="s3B391C0B35D55513BC51039F16131C96"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div><div style="line-height:120%;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;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</font></div></div><div><br></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 19:&#160;&#160;Segment and Geographic Information</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company operates in </font><font style="font-family:Arial;font-size:10pt;">one</font><font style="font-family:Arial;font-size:10pt;">&#32;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.</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes information about geographic areas (in thousands):</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="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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">United&#160;States</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Europe</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Greater China </font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</font></div></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;">Year Ended December 31, 2018</font></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;"><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 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;"><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 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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">231,760</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">307,965</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">126,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">140,504</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Long-lived assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">67,156</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">23,948</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,482</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,735</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">95,321</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2017</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">180,248</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">328,826</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">108,738</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">148,271</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Long-lived assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">53,983</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">22,437</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,594</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,525</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">80,539</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;">Year Ended December 31, 2016</font></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;"><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 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;"><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 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;"><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 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;"><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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">142,380</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">230,311</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">66,179</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">90,645</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Long-lived assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">40,404</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">12,981</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">994</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,932</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">56,311</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">15%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">20%</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">17%</font><font style="font-family:Arial;font-size:10pt;">&#32;of total revenue in 2018, 2017, and 2016, respectively. Accounts receivable from the same customer accounted for </font><font style="font-family:Arial;font-size:10pt;">30%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">40%</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">10%</font><font style="font-family:Arial;font-size:10pt;">&#32;of total accounts receivable as of December 31, 2018, 2017, and 2016, respectively.</font></div><div><a name="s3E9718A07EDD5C08ACB136EE4A6041D6"></a></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 20:  Discontinued Operations</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On July 6, 2015, the Company completed the sale of its Surface Inspection Systems Division (SISD) to AMETEK, Inc. (AMETEK).  A binding arbitration was concluded in 2016 with respect to certain product performance claims made by an SISD customer, for which the Company remained responsible under the indemnity provisions of the sale transaction.  In that proceeding, the tribunal ordered the Company to pay the customer approximately </font><font style="font-family:Arial;font-size:10pt;">$326,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing a refund of the product purchase price.  The tribunal also ordered the customer to pay the Company approximately </font><font style="font-family:Arial;font-size:10pt;">$45,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing reimbursement of legal fees.  The net settlement of </font><font style="font-family:Arial;font-size:10pt;">$281,000</font><font style="font-family:Arial;font-size:10pt;">&#32;was recorded in discontinued operations in 2016, along with </font><font style="font-family:Arial;font-size:10pt;">$123,000</font><font style="font-family:Arial;font-size:10pt;">&#32;of legal fees.  The tax benefit related to this expense was </font><font style="font-family:Arial;font-size:10pt;">$149,000</font><font style="font-family:Arial;font-size:10pt;">, resulting in a net loss from discontinued operations of </font><font style="font-family:Arial;font-size:10pt;">$255,000</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div><a name="sC0A142E8CA5C51748329CF2F2F7C510F"></a></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 21:  Acquisitions</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company completed a total of </font><font style="font-family:Arial;font-size:10pt;">six</font><font style="font-family:Arial;font-size:10pt;">&#32;business acquisitions in 2017 and 2016.  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.  </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Transaction costs were immaterial and were expensed as incurred.</font><font style="font-family:Arial;font-size:10pt;">&#32;</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">GVi Ventures, Inc.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$5,368,000</font><font style="font-family:Arial;font-size:10pt;">&#32;included cash payment of </font><font style="font-family:Arial;font-size:10pt;">$4,069,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and contingent consideration valued at </font><font style="font-family:Arial;font-size:10pt;">$1,299,000</font><font style="font-family:Arial;font-size:10pt;">&#32;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. </font></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;">67</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2017, the Company recorded a </font><font style="font-family:Arial;font-size:10pt;">$282,000</font><font style="font-family:Arial;font-size:10pt;">&#32;expense representing a fair value adjustment in other expense, which increased the liability amount to </font><font style="font-family:Arial;font-size:10pt;">$1,581,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December 31, 2017.  In 2018, the Company paid $</font><font style="font-family:Arial;font-size:10pt;">1,000,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and recorded a </font><font style="font-family:Arial;font-size:10pt;">$1,065,000</font><font style="font-family:Arial;font-size:10pt;">&#32;expense representing a fair value adjustment in other expense, which increased the liability amount to $</font><font style="font-family:Arial;font-size:10pt;">1,646,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December 31, 2018.  The undiscounted potential outcomes related to future contingent consideration range from </font><font style="font-family:Arial;font-size:10pt;">$0</font><font style="font-family:Arial;font-size:10pt;">&#32;to $</font><font style="font-family:Arial;font-size:10pt;">2,500,000</font><font style="font-family:Arial;font-size:10pt;">&#32;based upon certain revenue levels over the next </font><font style="font-family:Arial;font-size:10pt;">four years</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">423</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">120</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(152</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">910</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,600</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,476</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,368</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The customer relationships are being amort</font><font style="font-family:Arial;font-size:10pt;">ized to selling, general, and administrative e</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">xpenses over</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">&#32;</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">eight</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">&#32;</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">years, and the completed technologies are being amortized to cost of revenue over</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">&#32;</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">five</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">&#32;</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">years, both on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$443,000</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">ViDi Systems S.A.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$23,015,000</font><font style="font-family:Arial;font-size:10pt;">&#32;included cash payment of </font><font style="font-family:Arial;font-size:10pt;">$20,019,000</font><font style="font-family:Arial;font-size:10pt;">, with the remaining </font><font style="font-family:Arial;font-size:10pt;">$2,996,000</font><font style="font-family:Arial;font-size:10pt;">&#32;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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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;"><font style="font-family:Arial;font-size:10pt;">Cash</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">146</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">425</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">129</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">40</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Deferred income tax asset</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">620</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(98</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(716</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Deferred income tax liability</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,008</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Non-compete agreement</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">370</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,774</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,333</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">23,015</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;">68</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 will be amortized to research, development and engineering expenses over </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;">&#32;years, and the completed technology will be amortized to cost of revenue over </font><font style="font-family:Arial;font-size:10pt;">six</font><font style="font-family:Arial;font-size:10pt;">&#32;years, both on a straight-line basis.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$5,112,000</font><font style="font-family:Arial;font-size:10pt;">.</font><font style="font-family:Arial;font-size:10pt;">&#32;</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Webscan, Inc. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On December 9, 2016, the Company acquired selected assets and assumed selected liabilities of Webscan, Inc., a privately-held U.S.-based ID provider of barcode verifiers.  The total purchase price of </font><font style="font-family:Arial;font-size:10pt;">$3,176,000</font><font style="font-family:Arial;font-size:10pt;">&#32;included </font><font style="font-family:Arial;font-size:10pt;">$3,000,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in cash paid upon closing and </font><font style="font-family:Arial;font-size:10pt;">$176,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in cash paid in January 2017 as a working capital adjustment.  There are no contingent payments.  In addition, the Company entered into special incentive payments tied to employment, none of which are material, that are being recorded as compensation expense. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Under this transaction, in addition to customer relationships and completed technologies, the Company acquired a team of individuals including software engineers that are expected to help the Company accelerate the development of future ID products. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">504</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">296</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">680</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">840</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">925</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(77</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,176</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The customer relationships are being amort</font><font style="font-family:Arial;font-size:10pt;">ized to selling, general, and administrative e</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">xpenses on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">over</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">&#32;</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">seven</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">&#32;</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">years, and the completed technologies are being amortized to cost of revenue on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis over </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;">&#32;years.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$287,000</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Chiaro Technologies LLC</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On November 30, 2016, the Company acquired selected assets and assumed selected liabilities of Chiaro Technologies LLC, a privately-held U.S.-based 3D vision company.  The total purchase price of </font><font style="font-family:Arial;font-size:10pt;">$4,149,000</font><font style="font-family:Arial;font-size:10pt;">&#32;included cash payment of </font><font style="font-family:Arial;font-size:10pt;">$3,538,000</font><font style="font-family:Arial;font-size:10pt;">&#32;and contingent consideration valued at </font><font style="font-family:Arial;font-size:10pt;">$611,000</font><font style="font-family:Arial;font-size:10pt;">&#32;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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2017, the Company recorded a </font><font style="font-family:Arial;font-size:10pt;">$15,000</font><font style="font-family:Arial;font-size:10pt;">&#32;expense representing a fair value adjustment in other expense, which increased the liability amount to </font><font style="font-family:Arial;font-size:10pt;">$626,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December 31, 2017.  In 2018, the Company recorded a </font><font style="font-family:Arial;font-size:10pt;">$282,000</font><font style="font-family:Arial;font-size:10pt;">&#32;expense representing a fair value adjustment in other expense, which increased the liability amount to $</font><font style="font-family:Arial;font-size:10pt;">908,000</font><font style="font-family:Arial;font-size:10pt;">&#32;as of December 31, 2018.  The undiscounted potential outcomes related to the contingent consideration range from </font><font style="font-family:Arial;font-size:10pt;">$0</font><font style="font-family:Arial;font-size:10pt;">&#32;to $</font><font style="font-family:Arial;font-size:10pt;">1,250,000</font><font style="font-family:Arial;font-size:10pt;">&#32;based upon certain milestone revenue levels to be met in 2019 and paid in early 2020. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 accelerate the development of future 3D vision products. </font></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;">69</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,350</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,911</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(115</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,149</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The completed technologies are included in "Intangible assets" on the Consolidated Balance </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet and are being amortized to cost of revenue on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis over </font><font style="font-family:Arial;font-size:10pt;">seven</font><font style="font-family:Arial;font-size:10pt;">&#32;years.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$902,000</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">EnShape GmbH</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On October 27, 2016, the Company acquired all of the outstanding shares of EnShape GmbH, a privately-held 3D sensor provider based in Germany.  The total purchase price of </font><font style="font-family:Arial;font-size:10pt;">$7,901,000</font><font style="font-family:Arial;font-size:10pt;">&#32;included </font><font style="font-family:Arial;font-size:10pt;">$5,395,000</font><font style="font-family:Arial;font-size:10pt;">&#32;in cash paid upon closing, </font><font style="font-family:Arial;font-size:10pt;">$1,362,000</font><font style="font-family:Arial;font-size:10pt;">&#32;of contingent cash payments based upon the completion of certain tasks that was paid in 2017, and </font><font style="font-family:Arial;font-size:10pt;">$1,144,000</font><font style="font-family:Arial;font-size:10pt;">&#32;of deferred cash payments as a holdback for potential indemnification claims that was paid in 2018.  The Company also entered into special incentive payments tied to employment, none of which are material, that are being recorded as compensation expense. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 help the Company accelerate the development of  future 3D vision products. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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;"><font style="font-family:Arial;font-size:10pt;">Cash</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">167</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">79</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,896</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">44</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">447</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,089</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,732</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(209</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Accrued income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(2,342</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,901</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The customer relationships are being amort</font><font style="font-family:Arial;font-size:10pt;">ized to selling, general, and administrative e</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">xpenses, and the completed technologies are being amortized to cost of revenue, both on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis over </font><font style="font-family:Arial;font-size:10pt;">seven</font><font style="font-family:Arial;font-size:10pt;">&#32;years.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$328,000</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">AQSense, S.L.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On August 30, 2016, the Company acquired selected assets and assumed selected liabilities of AQSense, S.L., a privately-held 3D vision software provider based in Spain.  The total purchase price of </font><font style="font-family:Arial;font-size:10pt;">$2,519,000</font><font style="font-family:Arial;font-size:10pt;">&#32;was paid in cash and there are no contingent payments. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 help the Company accelerate the development of  future 3D vision products. </font></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;">70</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">168</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">598</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">384</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,383</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(14</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,519</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The completed technologies are included in "Intangible assets" on the Consolidated Balance Sheet and they are being amortized to cost of revenue on a straight-line basis over </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;">&#32;years.  The acquired goodwill is not deductible for tax purposes. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2017, the Company determined that the carrying value of the customer relationships was impaired and reduced this value to zero.  The impairment charge was included in selling, general, and administrative expenses on the Consolidated Statements of Operations.</font></div><div><a name="s08B8784A3F1251FAB9A18DE17A712173"></a></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 22:  Subsequent Events</font></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On February 14, 2019, the Company's Board of Directors declared a cash dividend of </font><font style="font-family:Arial;font-size:10pt;">$0.050</font><font style="font-family:Arial;font-size:10pt;">&#32;per share.  The dividend is payable </font><font style="font-family:Arial;font-size:10pt;">March 15, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;to all shareholders of record as of the close of business on </font><font style="font-family:Arial;font-size:10pt;">March 1, 2019</font><font style="font-family:Arial;font-size:10pt;">.</font></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;">71</font></div></div><hr style="page-break-after:always"><div><a name="s06FF132FE8E05258A0BBBB4960273F0C"></a></div><div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)</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: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;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</font></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;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">April 1,                        2018</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 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;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">July 1,                                 2018</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 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;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">September 30,                           2018</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 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;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,<br>2018</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Revenue</font></div></td><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;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">169,567</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">211,264</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">232,221</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">193,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;"><font style="font-family:Arial;font-size:9pt;">Gross margin</font></div></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;"><font style="font-family:Arial;font-size:9pt;">129,369</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">157,095</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">173,361</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">140,461</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Operating income</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;">34,596</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">63,455</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">77,844</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">45,247</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Net income</font></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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">37,217</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">56,196</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">80,436</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">45,418</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Basic net income per share</font></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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.21</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.33</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.47</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.26</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;"><font style="font-family:Arial;font-size:9pt;">Diluted net income per share</font></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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.21</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.32</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.45</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.26</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">April 2,                        2017</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">July 2,                                 2017</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">October 1,                           2017</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,<br>2017</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Revenue</font></div></td><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;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">139,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">178,080</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">266,042</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">182,922</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></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;"><font style="font-family:Arial;font-size:9pt;">Gross margin</font></div></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;"><font style="font-family:Arial;font-size:9pt;">106,507</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">135,916</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">197,981</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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 colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">138,390</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Operating income</font></div></td><td colspan="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;"><font style="font-family:Arial;font-size:9pt;">37,216</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">60,021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">110,849</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 colspan="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;"><font style="font-family:Arial;font-size:9pt;">50,775</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Net income (loss)</font></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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">45,471</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">56,495</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">102,493</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">(27,747</font></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:9pt;"><font style="font-family:Arial;font-size:9pt;">)</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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</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="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Basic net income (loss) per share (1)</font></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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.26</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.33</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.59</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">(0.16</font></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:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></div></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;"><font style="font-family:Arial;font-size:9pt;">Diluted net income (loss) per share (1) (2)</font></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;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.25</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.32</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">0.57</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;"><font style="font-family:Arial;font-size:9pt;">(0.16</font></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:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;"><br></font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;"><br></font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(1) Prior period results have been adjusted to reflect the </font><font style="font-family:Arial;font-size:9pt;">two</font><font style="font-family:Arial;font-size:9pt;">-for-one stock split effected in the form of a stock dividend which occurred in the quarter ended December 31, 2017.</font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;"><br></font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(2) As a result of the net loss recorded for the quarter ended December 31, 2017, potential common stock equivalents of </font><font style="font-family:Arial;font-size:9pt;">7,145</font><font style="font-family:Arial;font-size:9pt;">&#32;were not included in the calculation of diluted net loss per share for this quarter.</font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;"><br></font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:inherit;font-size:9pt;"><br></font></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;">72</font></div></div><hr style="page-break-after:always"><div><a name="s2F46EDC587B25678858C69A3FBC45A9B"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; SCHEDULE II &#8211; VALUATION AND QUALIFYING ACCOUNTS</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: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;"><font style="font-family:inherit;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 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;"><font style="font-family:inherit;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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Additions</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 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;"><font style="font-family:inherit;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="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:inherit;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="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Description</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance&#160;at</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Beginning</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">of Period</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Charged&#160;to</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Costs and</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Expenses</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Charged</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">to Other</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Accounts</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 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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Deductions</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:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</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:inherit;font-size:8pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance&#160;at</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">End of</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Period</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 colspan="23" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(In thousands)</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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Reserve&#160;for&#160;Uncollectible Accounts Receivable and Sales Returns:</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">2018</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,568</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">464</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(343</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;">(a)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(43</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;">(b)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,646</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">873</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">724</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(116</font></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;"><font style="font-family:Arial;font-size:10pt;">)</font></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;"><font style="font-family:Arial;font-size:10pt;">(a)&#160;</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">87</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">(b)&#160;</font></div></td><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;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,568</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">2016</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">736</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">216</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(64</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;">(a)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(15</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;">(b)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">873</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred Tax Valuation Allowance:</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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 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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">2018</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,309</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">803</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,112</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,116</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,193</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,309</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">2016</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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,259</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">857</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,116</font></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:10pt;">(a)</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Specific write-offs</font></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:10pt;padding-left:0px;"><font style="font-family:Arial;font-size:10pt;">(b)</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign currency exchange rate changes</font></div></td></tr></table><div style="line-height:120%;padding-left:4px;text-align:left;padding-left:48px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></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;">73</font></div></div><hr style="page-break-after:always"><div><a name="sAADC8BDF67795A0EB146C8281A4932EF"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;9:  CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">There were no disagreements with accountants on accounting or financial disclosure during </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">&#32;or </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div><a name="s5EBAC48912D953438D762625FA97842C"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 9A:  CONTROLS AND PROCEDURES</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Disclosure Controls and Procedures</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 Chief Financial Officer, the effectiveness of its disclosure controls and procedures (as defined in such rules) as of the end of the period covered by this report. Based on such evaluation, the Chief Executive Officer and Chief Financial Officer concluded that such disclosure controls and procedures were effective as of that date.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Management&#8217;s Report on Internal Control over Financial Reporting</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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).</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Attestation Report of the Registered Public Accounting Firm on Internal Control over Financial Reporting</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s internal control over financial reporting as of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">&#32;has been audited by Grant Thornton LLP, an independent registered public accounting firm, as stated in their report which is included herein.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Changes in Internal Control over Financial Reporting</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">During the third quarter of 2018, the Company implemented a new Enterprise Resource Planning (ERP) system.  As a result of this implementation, the Company modified certain existing internal controls as well as implemented new controls and procedures related to the new ERP system.  The Company continued to evaluate the design and operating effectiveness of these internal controls during the fourth quarter of 2018.  Except with respect to the continued implementation of the ERP system, there were no changes in the Company's internal control over financial reporting that occurred during the quarter ended </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">&#32;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.</font></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;">74</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Board of Directors and Shareholders                                                                                                                         Cognex Corporation</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%;text-align:justify;font-size:12pt;"><font style="font-family:Arial;font-size:10pt;">Opinion on internal control over financial reporting    </font><font style="font-family:Arial;font-size:12pt;">&#32;</font><font style="font-family:Arial;font-size:10pt;">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, based on criteria established in the 2013 </font><font style="font-family:Arial;font-size:10pt;font-style:italic;">Internal Control-Integrated Framework</font><font style="font-family:Arial;font-size:10pt;">&#32;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, 2018, based on criteria established in the 2013 </font><font style="font-family:Arial;font-size:10pt;font-style:italic;">Internal Control-Integrated Framework</font><font style="font-family:Arial;font-size:10pt;">&#32;issued by COSO.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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, 2018, and our report dated February 14, 2019 expressed an unqualified opinion on those financial statements.</font></div><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial Narrow;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basis for opinion</font></div><div style="line-height:120%;text-align:left;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Definition and limitations of internal control over financial reporting</font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">/s/ GRANT THORNTON LLP</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Boston, Massachusetts</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">February&#160;14, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;</font></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;">75</font></div></div><hr style="page-break-after:always"><div><a name="sA298823B1360562A883F0F393DB19179"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 9B:  OTHER INFORMATION</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">None</font></div><div><a name="s3846E89F93355ED58A020275909C59CB"></a></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">PART III</font></div><div><a name="sD6329B28C63859C88BFB1F80BE976BB3"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;10:&#160;&#160;DIRECTORS, EXECUTIVE OFFICERS, AND CORPORATE GOVERNANCE</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">April&#160;25, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;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.</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">www.cognex.com</font><font style="font-family:inherit;font-size:10pt;">&#32;</font><font 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.</font></div><div><a name="sDABE5D5A61115AF78FB971E9E3280DAF"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;11:&#160;&#160;EXECUTIVE COMPENSATION</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">April&#160;25, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;and is incorporated herein by reference.</font></div><div><a name="s03602854C6E05F8B825D233B2EB4B870"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font 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</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">April&#160;25, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;and is incorporated herein by reference.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table provides information as of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">&#32;regarding shares of common stock that may be issued under the Company&#8217;s existing equity compensation plans:</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: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;"><font style="font-family:Arial;font-size:8pt;">Plan Category</font></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;"><font style="font-family:Arial;font-size:8pt;">Number&#160;of&#160;securities&#160;to&#160;be</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">issued upon exercise of</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">outstanding&#160;options,</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">warrants,&#160;and rights</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">Weighted-average&#160;exercise</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">price&#160;of&#160;outstanding&#160;options,</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">warrants,&#160;and&#160; rights</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">Number&#160;of&#160;securities</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">remaining&#160;available&#160;for&#160;future</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">issuance under equity</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">compensation plans</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(excluding&#160;securities&#160;reflected</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">in column (a))</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:8pt;">&#160;</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:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(a)</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 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;"><font style="font-family:inherit;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 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;"><font style="font-family:inherit;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></tr><tr><td style="vertical-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;"><font style="font-family:Arial;font-size:8pt;">Equity compensation plans approved by shareholders (4)</font></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;"><font style="font-family:Arial;font-size:8pt;">13,446,631</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">(1)</font></div></td><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;"><font style="font-family:Arial;font-size:8pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">32.3592</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">19,578,752</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:Arial;font-size:8pt;">(2)</font></div></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;"><font style="font-family:Arial;font-size:8pt;">Equity compensation plans not approved by shareholders (4)</font></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;"><font style="font-family:Arial;font-size:8pt;">341,943</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;">(3)</font></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;"><font style="font-family:Arial;font-size:8pt;">6.9819</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></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;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">13,788,574</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">$</font></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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">31.7298</font></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;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">19,578,752</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:8pt;">(1)</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:8pt;"><font 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.</font></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;"><font style="font-family:Arial;font-size:8pt;">(2)</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:8pt;"><font 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.</font></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;"><font style="font-family:Arial;font-size:8pt;">(3)</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:8pt;"><font 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.</font></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;"><font style="font-family:Arial;font-size:8pt;">(4)</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:8pt;"><font 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.</font></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  27,506,440 stock options have been granted under the 2001 General Stock Option Plan.</font></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;">76</font></div></div><hr style="page-break-after:always"><div><a name="s890E653D959953A3AB0F2FE96874B376"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;13:&#160;&#160;CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">April&#160;25, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;and is incorporated herein by reference.</font></div><div><a name="sA744AA0F22B654C9B8D7516B6EAB7D4C"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;14:&#160;&#160;PRINCIPAL ACCOUNTING FEES AND SERVICES</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">April&#160;25, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;and is incorporated herein by reference.</font></div><div><a name="sFA3C1CA31300503C9E846185615E1991"></a></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">PART IV</font></div><div><a name="sC4C4827597A85E73BDB9E960E3C5264E"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;15:&#160;&#160;EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</font></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;"><font style="font-family:Arial;font-size:10pt;">(1)</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Financial Statements</font></div></td></tr></table><div style="line-height:120%;padding-top:6px;padding-left:120px;font-size:10pt;"><font 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.</font></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;"><font style="font-family:Arial;font-size:10pt;">(2)</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Financial Statement Schedule</font></div></td></tr></table><div style="line-height:120%;padding-top:6px;padding-left:120px;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;padding-left:120px;font-size:10pt;"><font 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.</font></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;"><font style="font-family:Arial;font-size:10pt;">(3)</font></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Exhibits</font></div></td></tr></table><div style="line-height:120%;padding-top:6px;padding-left:120px;font-size:10pt;"><font 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.</font></div><div><a name="sB83571846CA65D228CC4DD7EAF491689"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;16:&#160;&#160;FORM 10-K SUMMARY</font></div><div style="line-height:120%;padding-left:4px;padding-top:6px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Not applicable</font></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;">77</font></div></div><hr style="page-break-after:always"><div><a name="sFAE07C1D82C854BDA40E8A8290CA8033"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:center;-sec-extract:summary;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">EXHIBIT INDEX</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: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;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">EXHIBIT&#160;NUMBER</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></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;"><font style="font-family:Arial;font-size:10pt;">3A</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">3B</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">3C</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">3D</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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/exhibit33.htm"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">3E</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">4A</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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;">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])</font></div></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;"><font style="font-family:Arial;font-size:10pt;">10A *</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10B *</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10C *</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10D *</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10E *</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10F *</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10G *</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10H *</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10I *</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10J *</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10K *</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10L *</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10M *</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="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"><font 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])</font></a></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;">78</font></div></div><hr style="page-break-after:always"><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">10N *</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10O *</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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10P *</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10Q *</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></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="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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">10R *</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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"><font 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])</font></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;"><font style="font-family:Arial;font-size:10pt;">21</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="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnx-20181231xexhibit21.htm"><font style="font-family:Arial;font-size:10pt;color:#000000;">Subsidiaries of the registrant (filed herewith)</font></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;"><font style="font-family:Arial;font-size:10pt;">23.1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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-20181231xexhibit231.htm"><font style="font-family:Arial;font-size:10pt;color:#000000;">Consent of Grant Thornton LLP (filed herewith)</font></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;"><font style="font-family:Arial;font-size:10pt;">31.1</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="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnx-20181231xexhibit311.htm"><font style="font-family:Arial;font-size:10pt;color:#000000;">Certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002 (CEO) (filed herewith)</font></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;"><font style="font-family:Arial;font-size:10pt;">31.2</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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-20181231xexhibit312.htm"><font style="font-family:Arial;font-size:10pt;color:#000000;">Certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002 (CFO) (filed herewith)</font></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;"><font style="font-family:Arial;font-size:10pt;">32.1</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="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnx-20181231xexhibit321.htm"><font style="font-family:Arial;font-size:10pt;color:#000000;">Certification pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (CEO) (furnished herewith)</font></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;"><font style="font-family:Arial;font-size:10pt;">32.2</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;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-20181231xexhibit322.htm"><font style="font-family:Arial;font-size:10pt;color:#000000;">Certification pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (CFO) (furnished herewith)</font></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;"><font style="font-family:Arial;font-size:10pt;">101</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;">xBRL (Extensible Business Reporting Language)</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;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;background-color:#cceeff;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 following materials from Cognex Corporation's Annual Report on Form 10-K for the period ended December&#160;31, 2018, formatted in xBRL: (i)&#160;Consolidated Statements of Operations for the years ended December&#160;31, 2018,&#160;December&#160;31, 2017, and December&#160;31, 2016; (ii)&#160;Consolidated Statements of Comprehensive Income for the years ended December&#160;31, 2018,&#160;December&#160;31, 2017, and December&#160;31, 2016; (iii)&#160;Consolidated Balance Sheets as of December&#160;31, 2018 and December&#160;31, 2017; (iv)&#160;Consolidated Statements of Cash Flows for the years ended December&#160;31, 2018,&#160;December&#160;31, 2017, and December&#160;31, 2016; (v)&#160;Consolidated Statements of Shareholders&#8217; Equity for the years ended December&#160;31, 2018,&#160;December&#160;31, 2017, and December&#160;31, 2016; and (vi)&#160;Notes to Consolidated Financial Statements.<br>*&#160;&#160;&#160;&#160;Indicates management contract or compensatory plan or arrangement<br></font></div></td></tr></table></div></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></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;">79</font></div></div><hr style="page-break-after:always"><div><a name="sF355A8C125A4581F8ED5738187C9E133"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#s112319AD99495F35B3837C6A75C0D45B"><font style="font-family:inherit;font-size:9pt;">Table of Contents</font></a></div></div><div><br></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">SIGNATURES</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></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;"><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;">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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><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="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;text-decoration:underline;">/s/&#160;&#160;&#160;&#160;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: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: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</font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></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;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Signature</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;text-decoration:underline;">Title</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;text-decoration:underline;">Date</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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Robert J. Shillman</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 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;"><font style="font-family:Arial;font-size:10pt;">Chairman of the Board of Directors and Chief Culture Officer</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;">February&#160;14, 2019</font></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;"><font style="font-family:Arial;font-size:10pt;">Robert J. Shillman</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="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></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Robert J. Willett</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 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;"><font style="font-family:Arial;font-size:10pt;">President, Chief Executive Officer, and Director (principal executive officer)</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;">February&#160;14, 2019</font></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;"><font style="font-family:Arial;font-size:10pt;">Robert J. Willett</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="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></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;John J. Curran</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 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;"><font style="font-family:Arial;font-size:10pt;">Senior Vice President of Finance and Chief Financial Officer (principal financial&#160;and&#160;accounting&#160;officer)</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;">February&#160;14, 2019</font></div></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;"><font style="font-family:Arial;font-size:10pt;">John J. Curran</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></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="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></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Patrick Alias</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 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;"><font style="font-family:Arial;font-size:10pt;">Director</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;">February&#160;14, 2019</font></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;"><font style="font-family:Arial;font-size:10pt;">Patrick Alias</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="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></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Eugene Banucci</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 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;"><font style="font-family:Arial;font-size:10pt;">Director</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;">February&#160;14, 2019</font></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;"><font style="font-family:Arial;font-size:10pt;">Eugene Banucci</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="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></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;"><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;height:5px;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;height:5px;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;height:5px;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;height:5px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Theodor Krantz</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 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;"><font style="font-family:Arial;font-size:10pt;">Director</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;">February&#160;14, 2019</font></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;"><font style="font-family:Arial;font-size:10pt;">Theodor Krantz</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="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></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Dianne Parrotte</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 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;"><font style="font-family:Arial;font-size:10pt;">Director</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;">February&#160;14, 2019</font></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;"><font style="font-family:Arial;font-size:10pt;">Dianne Parrotte</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="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></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Jerry Schneider</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 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;"><font style="font-family:Arial;font-size:10pt;">Director</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;">February&#160;14, 2019</font></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;"><font style="font-family:Arial;font-size:10pt;">Jerry Schneider</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="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></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;"><font style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Anthony Sun</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 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;"><font style="font-family:Arial;font-size:10pt;">Director</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;">February&#160;14, 2019</font></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;"><font style="font-family:Arial;font-size:10pt;">Anthony Sun</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="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></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;">80</font></div></div>	</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21
<SEQUENCE>2
<FILENAME>cgnx-20181231xexhibit21.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 2019 Workiva -->
		<title>Exhibit</title>
	</head>
	<body style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s911B8B2C564F52B7B7F6E927E4A86706"></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:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">SUBSIDIARIES OF THE REGISTRANT</font></div><div style="line-height:120%;padding-bottom:5px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December 31, 2018, 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-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-left:5px;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.14529914529915%;border-collapse:collapse;text-align:left;"><tr><td colspan="3"></td></tr><tr><td style="width:59%;"></td><td style="width:26%;"></td><td style="width:15%;"></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:8pt;"><font style="font-family:Arial;font-size:8pt;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:8pt;"><font style="font-family:Arial;font-size:8pt;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:8pt;"><font style="font-family:Arial;font-size:8pt;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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Mexico S.R.L.C.V. </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:10pt;"><font style="font-family:Arial;font-size:10pt;">Mexico</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Poland z.o.o</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:10pt;"><font style="font-family:Arial;font-size:10pt;">Poland</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Representacao Comercial E Participacoes Ltda.</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:10pt;"><font style="font-family:Arial;font-size:10pt;">Brazil</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Sensors India Private Limited</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:10pt;"><font style="font-family:Arial;font-size:10pt;">India</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Service, 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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Service 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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Singapore, 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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Switzerland 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:10pt;"><font style="font-family:Arial;font-size:10pt;">Switzerland</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Taiwan, 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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:24px;text-indent:-12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Technology and Investment 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:10pt;"><font style="font-family:Arial;font-size:10pt;">California</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex UK 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:10pt;"><font style="font-family:Arial;font-size:10pt;">United Kingdom</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Vietnam Company 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:10pt;"><font style="font-family:Arial;font-size:10pt;">Vietnam</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Vision Inspection System (Shanghai) Co., 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:10pt;"><font style="font-family:Arial;font-size:10pt;">China</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">Cognex Vision Spain, S.L.U.</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:10pt;"><font style="font-family:Arial;font-size:10pt;">Spain</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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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:10pt;"><font style="font-family:Arial;font-size:10pt;">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>	</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>3
<FILENAME>cgnx-20181231xexhibit231.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 2019 Workiva -->
		<title>Exhibit</title>
	</head>
	<body style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s0C2F578DF74F58BA81D1965A2EB67D54"></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 14, 2019, 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, 2018.  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-02151; 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;14, 2019</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>	</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>4
<FILENAME>cgnx-20181231xexhibit311.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 2019 Workiva -->
		<title>Exhibit</title>
	</head>
	<body style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s835540C6C3D9549DAA7E9986E9204968"></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;14, 2019</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</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>	</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>5
<FILENAME>cgnx-20181231xexhibit312.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 2019 Workiva -->
		<title>Exhibit</title>
	</head>
	<body style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s28A23D7964CD59EEBE475ABA947E726C"></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, John J. Curran, 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;14, 2019</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/ John J. Curran</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;">John J. Curran</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></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;">Senior Vice President of Finance and Chief Financial Officer</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: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></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>	</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>6
<FILENAME>cgnx-20181231xexhibit321.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 2019 Workiva -->
		<title>Exhibit</title>
	</head>
	<body style="font-family:Times New Roman;font-size:10pt;">
<div><a name="sAC43C86D6B8152F39675385B6B6C9125"></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, 2018</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;14, 2019</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>	</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>7
<FILENAME>cgnx-20181231xexhibit322.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 2019 Workiva -->
		<title>Exhibit</title>
	</head>
	<body style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s80246E9A16655C6E89A3F4106316F9DA"></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 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, 2018</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;14, 2019</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/ John J. Curran</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;">John J. Curran</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></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;">Senior Vice President of Finance and Chief Financial Officer</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></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;">(principal financial 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>	</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.INS
<SEQUENCE>8
<FILENAME>cgnx-20181231.xml
<DESCRIPTION>XBRL INSTANCE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!--XBRL Document Created with Wdesk from Workiva-->
<!--p:D05B821E3814584A875E529607877545,x:ea49af8fac9c409092d96d1f398a20d2-->
<xbrli:xbrl xmlns:acec="http://fasb.org/dis/acec/2018-01-31" xmlns:ap="http://fasb.org/dis/ap/2018-01-31" xmlns:aro="http://fasb.org/dis/aro/2018-01-31" xmlns:bc="http://fasb.org/dis/bc/2018-01-31" xmlns:bsoff="http://fasb.org/dis/bsoff/2018-01-31" xmlns:cc="http://fasb.org/dis/cc/2018-01-31" xmlns:cce="http://fasb.org/dis/cce/2018-01-31" xmlns:cgnx="http://cognex.com/20181231" xmlns:codification-part="http://fasb.org/codification-part/2018-01-31" xmlns:com="http://fasb.org/stm/com/2018-01-31" xmlns:con="http://fasb.org/dis/con/2018-01-31" xmlns:country="http://xbrl.sec.gov/country/2017-01-31" xmlns:country-all="http://xbrl.sec.gov/country-all/2017-01-31" xmlns:country-ent-all="http://xbrl.sec.gov/country-ent-all/2017-01-31" xmlns:country-ent-std="http://xbrl.sec.gov/country-ent-std/2017-01-31" xmlns:country-std="http://xbrl.sec.gov/country-std/2017-01-31" xmlns:crcgen="http://fasb.org/dis/crcgen/2018-01-31" xmlns:crcpb="http://fasb.org/dis/crcpb/2018-01-31" xmlns:crcrb="http://fasb.org/dis/crcrb/2018-01-31" xmlns:crcsbp="http://fasb.org/dis/crcsbp/2018-01-31" xmlns:ctbl="http://fasb.org/dis/ctbl/2018-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2017-01-31" xmlns:currency-all="http://xbrl.sec.gov/currency-all/2017-01-31" xmlns:currency-ent-all="http://xbrl.sec.gov/currency-ent-all/2017-01-31" xmlns:currency-ent-std="http://xbrl.sec.gov/currency-ent-std/2017-01-31" xmlns:currency-std="http://xbrl.sec.gov/currency-std/2017-01-31" xmlns:dccpoa="http://fasb.org/dis/dccpoa/2018-01-31" xmlns:debt="http://fasb.org/dis/debt/2018-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2018-01-31" xmlns:dei-all="http://xbrl.sec.gov/dei-all/2018-01-31" xmlns:dei-ent-all="http://xbrl.sec.gov/dei-ent-all/2018-01-31" xmlns:dei-ent-std="http://xbrl.sec.gov/dei-ent-std/2018-01-31" xmlns:dei-std="http://xbrl.sec.gov/dei-std/2018-01-31" xmlns:deprecated="http://www.xbrl.org/2009/arcrole/deprecated" xmlns:deprecated1="http://www.xbrl.org/2009/role/deprecated" xmlns:diha="http://fasb.org/dis/diha/2018-01-31" xmlns:disops="http://fasb.org/dis/disops/2018-01-31" xmlns:dr="http://fasb.org/dis/dr/2018-01-31" xmlns:edco="http://fasb.org/dis/edco/2018-01-31" xmlns:ei="http://fasb.org/dis/ei/2018-01-31" xmlns:emjv="http://fasb.org/dis/emjv/2018-01-31" xmlns:eps="http://fasb.org/dis/eps/2018-01-31" xmlns:equity="http://fasb.org/dis/equity/2018-01-31" xmlns:ero="http://fasb.org/dis/ero/2018-01-31" xmlns:eui="http://fasb.org/dis/eui/2018-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2018-01-31" xmlns:exch-all="http://xbrl.sec.gov/exch-all/2018-01-31" xmlns:exch-ent-all="http://xbrl.sec.gov/exch-ent-all/2018-01-31" xmlns:exch-ent-std="http://xbrl.sec.gov/exch-ent-std/2018-01-31" xmlns:exch-std="http://xbrl.sec.gov/exch-std/2018-01-31" xmlns:fifvd="http://fasb.org/dis/fifvd/2018-01-31" xmlns:foct="http://fasb.org/dis/foct/2018-01-31" xmlns:fs-bd="http://fasb.org/dis/fs-bd/2018-01-31" xmlns:fs-bt="http://fasb.org/dis/fs-bt/2018-01-31" xmlns:fs-fhlb="http://fasb.org/dis/fs-fhlb/2018-01-31" xmlns:fs-ins="http://fasb.org/dis/fs-ins/2018-01-31" xmlns:fs-interest="http://fasb.org/dis/fs-interest/2018-01-31" xmlns:fs-mort="http://fasb.org/dis/fs-mort/2018-01-31" xmlns:guar="http://fasb.org/dis/guar/2018-01-31" xmlns:hco="http://fasb.org/dis/hco/2018-01-31" xmlns:iago="http://fasb.org/dis/iago/2018-01-31" xmlns:iaoi="http://fasb.org/dis/iaoi/2018-01-31" xmlns:ides="http://fasb.org/dis/ides/2018-01-31" xmlns:inctax="http://fasb.org/dis/inctax/2018-01-31" xmlns:inv="http://fasb.org/dis/inv/2018-01-31" xmlns:invco="http://fasb.org/dis/invco/2018-01-31" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:invest-all="http://xbrl.sec.gov/invest-all/2013-01-31" xmlns:invest-ent-all="http://xbrl.sec.gov/invest-ent-all/2013-01-31" xmlns:invest-ent-std="http://xbrl.sec.gov/invest-ent-std/2013-01-31" xmlns:invest-std="http://xbrl.sec.gov/invest-std/2013-01-31" xmlns:ir="http://fasb.org/dis/ir/2018-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:lea="http://fasb.org/dis/lea/2018-01-31" xmlns:leas="http://fasb.org/dis/leas/2018-01-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:naics="http://xbrl.sec.gov/naics/2017-01-31" xmlns:naics-all="http://xbrl.sec.gov/naics-all/2017-01-31" xmlns:naics-ent-all="http://xbrl.sec.gov/naics-ent-all/2017-01-31" xmlns:naics-ent-std="http://xbrl.sec.gov/naics-ent-std/2017-01-31" xmlns:naics-std="http://xbrl.sec.gov/naics-std/2017-01-31" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:net="http://www.xbrl.org/2009/role/net" xmlns:ni="http://fasb.org/dis/ni/2018-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:nt="http://fasb.org/dis/nt/2018-01-31" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:ocpfs="http://fasb.org/dis/ocpfs/2018-01-31" xmlns:oi="http://fasb.org/dis/oi/2018-01-31" xmlns:otherexp="http://fasb.org/dis/otherexp/2018-01-31" xmlns:othliab="http://fasb.org/dis/othliab/2018-01-31" xmlns:pay="http://fasb.org/dis/pay/2018-01-31" xmlns:ppe="http://fasb.org/dis/ppe/2018-01-31" xmlns:rcc="http://fasb.org/dis/rcc/2018-01-31" xmlns:rd="http://fasb.org/dis/rd/2018-01-31" xmlns:re="http://fasb.org/dis/re/2018-01-31" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:reference="http://www.xbrl.org/2009/role/reference" xmlns:regop="http://fasb.org/dis/regop/2018-01-31" xmlns:reorg="http://fasb.org/dis/reorg/2018-01-31" xmlns:rlnro="http://fasb.org/dis/rlnro/2018-01-31" xmlns:rpd="http://fasb.org/dis/rpd/2018-01-31" xmlns:ru="http://fasb.org/dis/ru/2018-01-31" xmlns:scf-dbo="http://fasb.org/stm/scf-dbo/2018-01-31" xmlns:scf-dir="http://fasb.org/stm/scf-dir/2018-01-31" xmlns:scf-indir="http://fasb.org/stm/scf-indir/2018-01-31" xmlns:scf-indira="http://fasb.org/stm/scf-indira/2018-01-31" xmlns:scf-inv="http://fasb.org/stm/scf-inv/2018-01-31" xmlns:scf-re="http://fasb.org/stm/scf-re/2018-01-31" xmlns:scf-sbo="http://fasb.org/stm/scf-sbo/2018-01-31" xmlns:scf-sd="http://fasb.org/stm/scf-sd/2018-01-31" xmlns:schedoi-fednote="http://fasb.org/dis/schedoi-fednote/2018-01-31" xmlns:schedoi-hold="http://fasb.org/dis/schedoi-hold/2018-01-31" xmlns:schedoi-iiaa="http://fasb.org/dis/schedoi-iiaa/2018-01-31" xmlns:schedoi-oocw="http://fasb.org/dis/schedoi-oocw/2018-01-31" xmlns:schedoi-otsh="http://fasb.org/dis/schedoi-otsh/2018-01-31" xmlns:schedoi-shorthold="http://fasb.org/dis/schedoi-shorthold/2018-01-31" xmlns:schedoi-sumhold="http://fasb.org/dis/schedoi-sumhold/2018-01-31" xmlns:se="http://fasb.org/dis/se/2018-01-31" xmlns:sec-cndfir="http://fasb.org/dis/sec-cndfir/2018-01-31" xmlns:sec-mort="http://fasb.org/dis/sec-mort/2018-01-31" xmlns:sec-re="http://fasb.org/dis/sec-re/2018-01-31" xmlns:sec-reins="http://fasb.org/dis/sec-reins/2018-01-31" xmlns:sec-sum="http://fasb.org/dis/sec-sum/2018-01-31" xmlns:sec-supins="http://fasb.org/dis/sec-supins/2018-01-31" xmlns:sec-suppc="http://fasb.org/dis/sec-suppc/2018-01-31" xmlns:sec-vq="http://fasb.org/dis/sec-vq/2018-01-31" xmlns:sfp-clreo="http://fasb.org/stm/sfp-clreo/2018-01-31" xmlns:sfp-cls="http://fasb.org/stm/sfp-cls/2018-01-31" xmlns:sfp-dbo="http://fasb.org/stm/sfp-dbo/2018-01-31" xmlns:sfp-ibo="http://fasb.org/stm/sfp-ibo/2018-01-31" xmlns:sfp-sbo="http://fasb.org/stm/sfp-sbo/2018-01-31" xmlns:sfp-ucreo="http://fasb.org/stm/sfp-ucreo/2018-01-31" xmlns:sheci="http://fasb.org/stm/sheci/2018-01-31" xmlns:sic="http://xbrl.sec.gov/sic/2011-01-31" xmlns:sic-all="http://xbrl.sec.gov/sic-all/2011-01-31" xmlns:sic-ent-all="http://xbrl.sec.gov/sic-ent-all/2011-01-31" xmlns:sic-ent-std="http://xbrl.sec.gov/sic-ent-std/2011-01-31" xmlns:sic-std="http://xbrl.sec.gov/sic-std/2011-01-31" xmlns:soc="http://fasb.org/stm/soc/2018-01-31" xmlns:soi="http://fasb.org/stm/soi/2018-01-31" xmlns:soi-egm="http://fasb.org/stm/soi-egm/2018-01-31" xmlns:soi-indira="http://fasb.org/stm/soi-indira/2018-01-31" xmlns:soi-ins="http://fasb.org/stm/soi-ins/2018-01-31" xmlns:soi-int="http://fasb.org/stm/soi-int/2018-01-31" xmlns:soi-re="http://fasb.org/stm/soi-re/2018-01-31" xmlns:soi-reit="http://fasb.org/stm/soi-reit/2018-01-31" xmlns:soi-sbi="http://fasb.org/stm/soi-sbi/2018-01-31" xmlns:spc="http://fasb.org/stm/spc/2018-01-31" xmlns:sr="http://fasb.org/dis/sr/2018-01-31" xmlns:srt="http://fasb.org/srt/2018-01-31" xmlns:srt-all="http://fasb.org/srt-all/2018-01-31" xmlns:srt-roles="http://fasb.org/srt-roles/2018-01-31" xmlns:srt-std="http://fasb.org/srt-std/2018-01-31" xmlns:srt-types="http://fasb.org/srt-types/2018-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:stpr-all="http://xbrl.sec.gov/stpr-all-all-all/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:stpr-std="http://xbrl.sec.gov/stpr-std-std-std/2018-01-31" xmlns:te="http://fasb.org/dis/te/2018-01-31" xmlns:tin-part="http://fasb.org/tin-part/2018-01-31" xmlns:ts="http://fasb.org/dis/ts/2018-01-31" xmlns:us-arcroles="http://fasb.org/us-arcroles/2018-01-31" xmlns:us-gaap="http://fasb.org/us-gaap/2018-01-31" xmlns:us-gaap-all="http://fasb.org/us-gaap-all/2018-01-31" xmlns:us-gaap-ent-std="http://fasb.org/us-gaap-ent-std/2018-01-31" xmlns:us-gaap-entryPoint-all="http://fasb.org/us-gaap-entryPoint-all/2018-01-31" xmlns:us-gaap-std="http://fasb.org/us-gaap-std/2018-01-31" xmlns:us-roles="http://fasb.org/us-roles/2018-01-31" xmlns:us-types="http://fasb.org/us-types/2018-01-31" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<link:schemaRef xlink:href="cgnx-20181231.xsd" xlink:type="simple" />
	<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="FI2018Q2">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-07-01</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2019Q1Stock">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-01-27</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>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">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</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="FD2016Q4YTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="FI2015Q4">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2015-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="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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</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="FI2015Q4_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>2015-12-31</xbrli:instant>
		</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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2015Q4_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>2015-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2015Q4_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>2015-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</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="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="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="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="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="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_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="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="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="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="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="FI2015Q4_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>2015-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_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="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="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="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member_us-gaap_StatementScenarioAxis_us-gaap_ScenarioPlanMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:StatementScenarioAxis">us-gaap:ScenarioPlanMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-01-01</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</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="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</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_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="FD2017Q4YTD_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-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2017Q4YTD_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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2017Q4YTD_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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-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="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="FI2018Q4_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>2018-12-31</xbrli:instant>
		</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="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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-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="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="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_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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-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="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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2017Q4YTD_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-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</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="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-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="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="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="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_srt_LitigationCaseAxis_cgnx_AMETEKMatterMember_us-gaap_DisposalGroupClassificationAxis_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_cgnx_SisdMember_us-gaap_LitigationStatusAxis_us-gaap_SettledLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GuaranteeObligationsMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:LitigationCaseAxis">cgnx:AMETEKMatterMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:DisposalGroupClassificationAxis">us-gaap:DiscontinuedOperationsDisposedOfBySaleMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">cgnx:SisdMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:LitigationStatusAxis">us-gaap:SettledLitigationMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:GuaranteeObligationsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember</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_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_CHF_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:CHF</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="FI2017Q4_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>2017-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_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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-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="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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_srt_CurrencyAxis_currency_CHF_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:CHF</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-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="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_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="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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="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_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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="FI2017Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member">
		<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:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2017Q4YTD_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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member">
		<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:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</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="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member">
		<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:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2016Q4_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>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2016Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member">
		<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:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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_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_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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="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="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="FI2015Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member">
		<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:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2015-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2015Q4_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>2015-12-31</xbrli:instant>
		</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="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="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="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="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="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="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="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="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="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="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="FD2018Q4YTD_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-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</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="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="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="FI2018Q4_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>2018-12-31</xbrli:instant>
		</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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="D2018Q4NovtoDec">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-11-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="D2018Q4JantoOct2018">
		<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-10-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_us-gaap_TitleOfIndividualAxis_cgnx_HighlyCompensatedEmployeeMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:TitleOfIndividualAxis">cgnx:HighlyCompensatedEmployeeMember</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="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="FI2017Q4_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>2017-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="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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_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="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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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="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="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="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="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="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="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="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="FI2016Q4_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>2016-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_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="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="FI2016Q4_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>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2016Q4_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>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2016Q4_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>2016-12-31</xbrli:instant>
		</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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</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="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="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.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:WebscanInc.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-12-09</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:WebscanInc.Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-12-09</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.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:WebscanInc.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-12-09</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="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-10-27</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember_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:EnShapeGmbHMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-10-27</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember_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:EnShapeGmbHMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-10-27</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:AQSenseS.L.Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-08-30</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.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:AQSenseS.L.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-08-30</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.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:AQSenseS.L.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-08-30</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2016Q4Nov30_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-11-30</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember_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:ChiaroTechnologiesLLCMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-11-30</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="D2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:AQSenseS.L.Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-08-30</xbrli:startDate>
			<xbrli:endDate>2016-08-30</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="D2016Q3Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-11-30</xbrli:startDate>
			<xbrli:endDate>2016-11-30</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="D2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:WebscanInc.Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-12-09</xbrli:startDate>
			<xbrli:endDate>2016-12-09</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">
		<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="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="D2016Q4Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-10-27</xbrli:startDate>
			<xbrli:endDate>2016-10-27</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="D2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember_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:ChiaroTechnologiesLLCMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-12-09</xbrli:startDate>
			<xbrli:endDate>2016-12-09</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="D2016Q3Nov30_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>2016-11-30</xbrli:startDate>
			<xbrli:endDate>2016-11-30</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="D2016Q4Dec09_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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-12-09</xbrli:startDate>
			<xbrli:endDate>2016-12-09</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2018Q4_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>2018-12-31</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="FI2018Q4_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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2017Q4_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-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</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="D2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.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:WebscanInc.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2016-12-09</xbrli:startDate>
			<xbrli:endDate>2016-12-09</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="FI2017Q4_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>2017-12-31</xbrli:instant>
		</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="D2017Q1Jan01-Jan31_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:WebscanInc.Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-01-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="D2019Q1_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>2019-02-15</xbrli:startDate>
			<xbrli:endDate>2019-02-15</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="I2019Q1_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>2019-02-15</xbrli:instant>
		</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="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="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="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="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="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:context id="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2015Q4_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>2015-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context>
	<xbrli:context id="FI2015Q4_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>2015-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="FD2016Q4YTD_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>2016-01-01</xbrli:startDate>
			<xbrli:endDate>2016-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_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="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="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="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="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: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="Employees">
		<xbrli:measure>cgnx:Employees</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>
	<cgnx:AgencyBondsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-7EF5FDF1C6DBDDA0E6E2FA5BD4FB0297" unitRef="usd">0</cgnx:AgencyBondsFairValueDisclosure>
	<cgnx:AgencyBondsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-D64CDAF7251BEEF02BD9FA5BD4F8649B" unitRef="usd">5921000</cgnx:AgencyBondsFairValueDisclosure>
	<cgnx:AssetBackedSecuritiesFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-F06C82A6FF66E7A1F823FA5BD4F9729A" unitRef="usd">0</cgnx:AssetBackedSecuritiesFairValueDisclosure>
	<cgnx:AssetBackedSecuritiesFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-4BD2E7D9C21DF0CAC067FA5BD4F73DE8" unitRef="usd">132038000</cgnx:AssetBackedSecuritiesFairValueDisclosure>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="FI2018Q4" decimals="-3" id="Fact-A15B0229275F5DDA183CFA5BD50C257D" unitRef="usd">3831000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-B990B5444E18144FEC43FA5BD5024C88" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-710CC1B37D8D8A89AEDFFA5BD50DC988" unitRef="usd">3831000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-33B483F537D00A02CE6AFA5BD50E8B1C" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="0" id="Fact-A9A427315DB38B175854FA5BD50CFE3B" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-11AA0A78C57499805C95FA5BD503ECFC" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-CAB55B6DA31C5DD3B57CFA5BD50E7075" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="FI2018Q4" decimals="-3" id="Fact-5E7B3B634DEEEE704099FA5BD5113E97" unitRef="usd">7542000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-6FC47DE2361CB0B57ED9FA5BD50FFF59" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-9BDAF17BD91B5E897A27FA5BD4FD0FAC" unitRef="usd">3416000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-8F37C583B64F64437A4CFA5BD506D14E" unitRef="usd">4126000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-284D2A9C0F79A75AD30DFA5BD4EA1951" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-FBA4C34392CED33015F8FA5BD50A720E" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-3457CAF9897CC909587FFA5BD5175024" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="FI2018Q4" decimals="-3" id="Fact-685DBA97444A9E8FCE4FFA5BD4FFFC07" unitRef="usd">149507000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-F9737F089BF9B5EE8105FA5BD50F43A0" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-9D732A4D5CD1A576734EFA5BD44BE2D8" unitRef="usd">27665000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-E16A85840846D0B9582BFA5BD44DE28A" unitRef="usd">81921000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-DC980F458F95DAA3483DFA5BD5086028" unitRef="usd">845000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-9E2871BBD018F313E48BFA5BD5112F9E" unitRef="usd">6316000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-5BF6D69C77BD4F381C1BFA5BD5091852" unitRef="usd">32760000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="FI2018Q4" decimals="-3" id="Fact-9F1B65ECA0704C383068FA5BD50FBF63" unitRef="usd">36985000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-3AE9F265DFE6B9896BF8FA5BD50AC3BF" unitRef="usd">5921000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-26E700CDD6461D834724FA5BD4E891DD" unitRef="usd">11004000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-41D866B637821A6A778FFA5BD50630C3" unitRef="usd">20060000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-FA8836427B18BF03696DFA5BD50D39C5" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-25B3834B2B4E92DAECEFFA5BD509DAC4" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-AEA8EC0743EB4B9E717EFA5BD505CEF2" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="FI2018Q4" decimals="-3" id="Fact-BA2208BA654B3B32D962FA5BD5070737" unitRef="usd">64174000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-94FBD419D5119F622112FA5BD50B149D" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-FF4D7B11B874BA9690D1FA5BD5062E7E" unitRef="usd">7715000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-7CC506BDBAC4F0866173FA5BD50C96F9" unitRef="usd">56459000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-5A1D35171F33419DFD38FA5BD4E95FF1" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-378B4831C42C306E505AFA5BD5048F09" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
	<cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-BD454E1264C7EB413246FA5BD50AD42E" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
	<cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum contextRef="FD2018Q4YTD" id="Fact-D29D3B88AA6E2062AB88FA5BD44470B1">P10Y</cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum>
	<cgnx:BusinessCombinationConsiderationTransferredDeferredCashPayment contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-B94FABCCE8E507E6D212710E89284C30" unitRef="usd">1144000</cgnx:BusinessCombinationConsiderationTransferredDeferredCashPayment>
	<cgnx:BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" id="Fact-D59E7294E2B8E5B4A47C96AE59692629">P4Y</cgnx:BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition>
	<cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses contextRef="I2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member" decimals="-3" id="Fact-BE5F2F0C3F91CE9D679BFA5BD4CF7F68" unitRef="usd">14000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses>
	<cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-E6258209846B9398BF05FA5BD4A33588" unitRef="usd">209000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses>
	<cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses contextRef="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-02FF8101E66CD3FFA9A8FA5BD4E69DF4" unitRef="usd">115000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses>
	<cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-4039D7BA7F2E62625010FA5BD4EE85C4" unitRef="usd">716000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses>
	<cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-BDA5F527253B13E0D275FA5BD4AD7E6F" unitRef="usd">10000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses>
	<cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-E8E8B1F56CC5E82EF1E0FA5BD4A23823" unitRef="usd">2342000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable>
	<cgnx:CashCashEquivalentsShortTermAndLongTermInvestments contextRef="FI2017Q4" decimals="-3" id="Fact-1987A957CFD21FF8890EFA5BD4AB7CE6" unitRef="usd">827984000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
	<cgnx:CashCashEquivalentsShortTermAndLongTermInvestments contextRef="FI2018Q4" decimals="-3" id="Fact-E6870E86F95057A9DA45FA5BD4A69007" unitRef="usd">797599000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
	<cgnx:CompanyContributionsVestAtEndOfFiveYears contextRef="D2018Q4JantoOct2018" decimals="INF" id="Fact-2162A0E38128F4B7B481FA5BD4BD56FB" unitRef="number">1.00</cgnx:CompanyContributionsVestAtEndOfFiveYears>
	<cgnx:CompanyContributionsVestAtEndOfFiveYears contextRef="D2018Q4NovtoDec" decimals="INF" id="Fact-CC993DF1D29AD2D957A677F4194AE937" unitRef="number">1</cgnx:CompanyContributionsVestAtEndOfFiveYears>
	<cgnx:CompanyContributionsVestAtEndOfFourYears contextRef="D2018Q4JantoOct2018" decimals="INF" id="Fact-4AAD0C385FC3DFF2F76AFA5BD4C6F44E" unitRef="number">0.6</cgnx:CompanyContributionsVestAtEndOfFourYears>
	<cgnx:CompanyContributionsVestAtEndOfFourYears contextRef="D2018Q4NovtoDec" decimals="INF" id="Fact-213DC74C74D9486FE51977F3FF01E835" unitRef="number">0.75</cgnx:CompanyContributionsVestAtEndOfFourYears>
	<cgnx:CompanyContributionsVestAtEndOfThreeYears contextRef="D2018Q4JantoOct2018" decimals="INF" id="Fact-2B95DD4A54D0C84C1B92FA5BD4C86F5B" unitRef="number">0.4</cgnx:CompanyContributionsVestAtEndOfThreeYears>
	<cgnx:CompanyContributionsVestAtEndOfThreeYears contextRef="D2018Q4NovtoDec" decimals="INF" id="Fact-4D82D218205647456F6377F3E7A28F4E" unitRef="number">0.5</cgnx:CompanyContributionsVestAtEndOfThreeYears>
	<cgnx:CompanyContributionsVestAtEndOfTwoYear contextRef="D2018Q4JantoOct2018" decimals="INF" id="Fact-73D35D81C28EF26E99C1FA5BD4C7670F" unitRef="number">0.2</cgnx:CompanyContributionsVestAtEndOfTwoYear>
	<cgnx:CompanyContributionsVestAtEndOfTwoYear contextRef="D2018Q4NovtoDec" decimals="INF" id="Fact-105CDEBE2E0670EC1A0C77F397696D54" unitRef="number">0.25</cgnx:CompanyContributionsVestAtEndOfTwoYear>
	<cgnx:ContractLiabilityForeignExchangeRateChanges contextRef="FD2017Q4YTD" decimals="-3" id="Fact-ED4EA82A634FDE661BC59650DCDF5A05" unitRef="usd">552000</cgnx:ContractLiabilityForeignExchangeRateChanges>
	<cgnx:ContractLiabilityForeignExchangeRateChanges contextRef="FD2018Q4YTD" decimals="-3" id="Fact-7A609E57C7FBCB666ED49650DCDAA03D" unitRef="usd">-987000</cgnx:ContractLiabilityForeignExchangeRateChanges>
	<cgnx:CorporateBondsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-3077F8723E18DF0F219FFA5BD4FC231A" unitRef="usd">0</cgnx:CorporateBondsFairValueDisclosure>
	<cgnx:CorporateBondsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-9FA168392033ED31E0DBFA5BD4F03CFF" unitRef="usd">300437000</cgnx:CorporateBondsFairValueDisclosure>
	<cgnx:DeferredTaxAssetsOtherNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-FB235D558873366DF1F0FA5BD4EDFDB7" unitRef="usd">3012000</cgnx:DeferredTaxAssetsOtherNoncurrent>
	<cgnx:DeferredTaxAssetsOtherNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-45599C086572F0DB4DB2FA5BD4EBF1A0" unitRef="usd">2425000</cgnx:DeferredTaxAssetsOtherNoncurrent>
	<cgnx:DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState contextRef="FI2017Q4" decimals="-3" id="Fact-D314EA1485AEC3843059FA5BD4AD6438" unitRef="usd">11664000</cgnx:DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState>
	<cgnx:DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState contextRef="FI2018Q4" decimals="-3" id="Fact-DBA715D585EF43A7A5C6FA5BD4EB96FE" unitRef="usd">13818000</cgnx:DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState>
	<cgnx:DueFromForeignBanks contextRef="FI2017Q4" decimals="0" id="Fact-B51620BC83D4CBD14447FA5BD479BD20" unitRef="usd">66777000</cgnx:DueFromForeignBanks>
	<cgnx:DueFromForeignBanks contextRef="FI2018Q4" decimals="0" id="Fact-C10F827DA37E3D8C04A5FA5BD47057A6" unitRef="usd">67502000</cgnx:DueFromForeignBanks>
	<cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent contextRef="FD2016Q4YTD" decimals="2" id="Fact-A77FFCFAAB1FAF41C698FA5BD4A06F51" unitRef="number">0.00</cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent>
	<cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent contextRef="FD2017Q4YTD" decimals="2" id="Fact-A16B22C941D4802F0CEBFA5BD49B8A82" unitRef="number">0.36</cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent>
	<cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent contextRef="FD2018Q4YTD" decimals="2" id="Fact-0834EC9FC57BA932AD4BFA5BD49D8CFA" unitRef="number">-0.03</cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent>
	<cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount contextRef="FI2016Q4" decimals="0" id="Fact-31F86D43CB74CE8738B3FA5BD47E3FA8" unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
	<cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount contextRef="FI2017Q4" decimals="0" id="Fact-72D34DFFAB2472B4CC51FA5BD47F4A55" unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
	<cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount contextRef="FI2018Q4" decimals="0" id="Fact-F0374A8EBA276DDDDBC3FA5BD48162FC" unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
	<cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement contextRef="FI2018Q4" decimals="2" id="Fact-034AE59D71D8D123454DFA5BD4DB6A25" unitRef="number">0.12</cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement>
	<cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement contextRef="FI2018Q4" decimals="2" id="Fact-2F2B3C87C6FA81602C9CFA5BD4AF989E" unitRef="number">0.08</cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement>
	<cgnx:ExpirationPeriodOfStockOptionPlan contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" id="Fact-056BED34359131DF0070FA5BD4B5558E">P10Y</cgnx:ExpirationPeriodOfStockOptionPlan>
	<cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates contextRef="FD2016Q4YTD" decimals="0" id="Fact-5B85C31DBFBCD742C6DCFA5BD4DCAF50" unitRef="usd">334000</cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
	<cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates contextRef="FD2017Q4YTD" decimals="0" id="Fact-B2242469783E9E62A86DFA5BD4DC949A" unitRef="usd">673000</cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
	<cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates contextRef="FD2018Q4YTD" decimals="0" id="Fact-D8CF778276F8D12C349FFA5BD4BACFA3" unitRef="usd">1283000</cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
	<cgnx:LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue contextRef="FD2016Q4YTD_srt_LitigationCaseAxis_cgnx_AMETEKMatterMember_us-gaap_DisposalGroupClassificationAxis_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_cgnx_SisdMember_us-gaap_LitigationStatusAxis_us-gaap_SettledLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GuaranteeObligationsMember" decimals="0" id="Fact-42810298A5555EA1A48DFA5BD4BA046E" unitRef="usd">326000</cgnx:LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue>
	<cgnx:LossContingencyDamagesAwardedReimbursementOfLegalFeesValue contextRef="FD2016Q4YTD_srt_LitigationCaseAxis_cgnx_AMETEKMatterMember_us-gaap_DisposalGroupClassificationAxis_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_cgnx_SisdMember_us-gaap_LitigationStatusAxis_us-gaap_SettledLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GuaranteeObligationsMember" decimals="0" id="Fact-96FB0FC12B0E25155960FA5BD4B8840B" unitRef="usd">45000</cgnx:LossContingencyDamagesAwardedReimbursementOfLegalFeesValue>
	<cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves contextRef="FD2017Q4YTD" decimals="0" id="Fact-C64FC5069011C3FBC0CBFA5BD4BFFEC0" unitRef="usd">1300000</cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
	<cgnx:MaximumInvestmentOfCompanyInPartnership contextRef="FD2018Q4YTD" decimals="INF" id="Fact-CA00BF2BDBF27728355BFA5BD4BA4C65" unitRef="number">0.05</cgnx:MaximumInvestmentOfCompanyInPartnership>
	<cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan contextRef="FD2018Q4YTD" id="Fact-5185CC86ABC73B2D20B477F22197E5DC">P21Y</cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan>
	<cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves contextRef="FD2018Q4YTD" decimals="0" id="Fact-1D6662CDFA016E7D78BDFA5BD46EFAA9" unitRef="usd">1200000</cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
	<cgnx:MoneyMarketInstrumentsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-FD646AD40ED545ADCE21FA5BD4FB8BB6" unitRef="usd">3557000</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
	<cgnx:MoneyMarketInstrumentsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-155CF65D4B12AF34B286FA5BD4F629A4" unitRef="usd">0</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
	<cgnx:MunicipalBondsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-6218A34068957605B80FFA5BD4F1AF67" unitRef="usd">0</cgnx:MunicipalBondsFairValueDisclosure>
	<cgnx:MunicipalBondsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-ED3D5605A9317F53B84AFA5BD4FA7006" unitRef="usd">5337000</cgnx:MunicipalBondsFairValueDisclosure>
	<cgnx:NoncurrentDeferredTaxAssetsDeprecation contextRef="FI2017Q4" decimals="-3" id="Fact-9F57B46BA22A2DCB7260FA5BD45F1561" unitRef="usd">2279000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
	<cgnx:NoncurrentDeferredTaxAssetsDeprecation contextRef="FI2018Q4" decimals="-3" id="Fact-70CF290E2C6374114131FA5BD4A5939D" unitRef="usd">2475000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
	<cgnx:NumberOfGroupsWithinEmployeePopulation contextRef="FI2018Q4" decimals="INF" id="Fact-3EC179D71E3A59FC6903FA5BD4DF7547" unitRef="Employees">2</cgnx:NumberOfGroupsWithinEmployeePopulation>
	<cgnx:OpenTaxYearStateAuthorities contextRef="FD2018Q4YTD" id="Fact-18DB30D3DDF3107C00ADFA5BD4DF792D">2013 through 2016</cgnx:OpenTaxYearStateAuthorities>
	<cgnx:OpentaxyearUnitedStatesInternalRevenueService contextRef="FD2018Q4YTD" id="Fact-C948C16286B51942235CFA5BD4DFA919">2013 through 2016</cgnx:OpentaxyearUnitedStatesInternalRevenueService>
	<cgnx:Opentaxyearvarioustaxingauthorities contextRef="FD2018Q4YTD" id="Fact-7EDDFF188D69FB9D0A24FA5BD4E1C77E">2012 through 2016</cgnx:Opentaxyearvarioustaxingauthorities>
	<cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent contextRef="FD2016Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-4DF0F2D74557568FA467FA5BD519EC59" unitRef="usd">0</cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent>
	<cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent contextRef="FD2017Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-9DB17F24E1BB98E56C16FA5BD518C3AC" unitRef="usd">0</cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent>
	<cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent contextRef="FD2018Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-632C29F2C8B5C7DDF900FA5BD518EE73" unitRef="usd">0</cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent>
	<cgnx:ProductWarrantyPeriod contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember" id="Fact-EBBE0D831A3270373FB2FA5BD4B5C1C8">P3Y</cgnx:ProductWarrantyPeriod>
	<cgnx:ProductWarrantyPeriod contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember" id="Fact-989973C19C9EAC4AF01DFA5BD4A6B6DE">P1Y</cgnx:ProductWarrantyPeriod>
	<cgnx:Repurchasedsharestotalcost contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember" decimals="0" id="Fact-40005BBB71F4F10DD615FA5BD4651266" unitRef="usd">100000000</cgnx:Repurchasedsharestotalcost>
	<cgnx:RetirementAllowance contextRef="FI2017Q4" decimals="-3" id="Fact-885A69B16A3E862F11DC8181267B64B1" unitRef="usd">4260000</cgnx:RetirementAllowance>
	<cgnx:RetirementAllowance contextRef="FI2018Q4" decimals="-3" id="Fact-E5C43E89F0C7F58E2896818124A408D0" unitRef="usd">4816000</cgnx:RetirementAllowance>
	<cgnx:RevenuePaymentTerms contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember" id="Fact-8E93C6D65866840F0737E39C860A8DB0">P90D</cgnx:RevenuePaymentTerms>
	<cgnx:RevenuePaymentTerms contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember" id="Fact-11F36BA1E4037F2F6A36E39C8531ABFC">P30D</cgnx:RevenuePaymentTerms>
	<cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue contextRef="FI2018Q4" decimals="-3" id="Fact-4FA48B3C173EB53E51C6FA5BD47E0AD7" unitRef="usd">82716000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue>
	<cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue contextRef="FD2016Q4YTD" decimals="0" id="Fact-965BBFD22C91254D3DEAFA5BD4DE9189" unitRef="usd">18114000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
	<cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue contextRef="FD2017Q4YTD" decimals="0" id="Fact-ACDCCE005E6F75712204FA5BD4BDD30E" unitRef="usd">21519000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
	<cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue contextRef="FD2018Q4YTD" decimals="0" id="Fact-F0971AB8049565F9ECF3FA5BD4BB1527" unitRef="usd">31106000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
	<cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue contextRef="FD2016Q4YTD" decimals="0" id="Fact-564D656DDDCEE6132CDAFA5BD4C5356E" unitRef="usd">55580000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
	<cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue contextRef="FD2017Q4YTD" decimals="0" id="Fact-EDDD517872C73E8D63B2FA5BD48FFAA1" unitRef="usd">136672000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
	<cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue contextRef="FD2018Q4YTD" decimals="0" id="Fact-EA11BBC9F4FEDABBB55AFA5BD4DFD223" unitRef="usd">52629000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
	<cgnx:SovereignBondsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-B0101F1A62BA0E65C06D776B9FAA12B4" unitRef="usd">0</cgnx:SovereignBondsFairValueDisclosure>
	<cgnx:SovereignBondsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-F3CDF4A786FEEA32AEFFFA5BD4F87EED" unitRef="usd">14417000</cgnx:SovereignBondsFairValueDisclosure>
	<cgnx:Stateresearchandexperimentationtaxcarryforwards contextRef="FD2018Q4YTD" id="Fact-DB573D173F62CFB0FF3AFA5BD4DC0BCD">2014 through 2016</cgnx:Stateresearchandexperimentationtaxcarryforwards>
	<cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense contextRef="FD2017Q4YTD" decimals="-3" id="Fact-7798930A4EE8DF79BB3C7B5FA3510241" unitRef="usd">12523000</cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense>
	<cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense contextRef="FD2018Q4YTD" decimals="-3" id="Fact-F4AAE970154152DFE3989FA4904B50B5" unitRef="usd">3240000</cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense>
	<cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense contextRef="FD2017Q4YTD" decimals="-3" id="Fact-441FB532442E4AFB5BAF7B5FD05B964B" unitRef="usd">101379000</cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense>
	<cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense contextRef="FD2018Q4YTD" decimals="-3" id="Fact-246FDC083FB8347058309FBA2800D8D1" unitRef="usd">11028000</cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense>
	<cgnx:TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability contextRef="FI2018Q4" decimals="-3" id="Fact-880D476E9774F20A1C259FBB800B02DF" unitRef="usd">90351000</cgnx:TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability>
	<cgnx:TaxYearsCoveredThroughAdvancedPricingAgreement contextRef="FD2017Q4YTD" id="Fact-ED66DEB24280D9FEBA32FA5BD4DCE121">2006 through 2011</cgnx:TaxYearsCoveredThroughAdvancedPricingAgreement>
	<cgnx:Taxdeductiblegoodwill contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="0" id="Fact-8F41A3C1731D015FB3FBFA5BD49AAB9D" unitRef="usd">328000</cgnx:Taxdeductiblegoodwill>
	<cgnx:Taxdeductiblegoodwill contextRef="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="0" id="Fact-C3BD1A96DC352ACB57FAFA5BD4E83AFD" unitRef="usd">287000</cgnx:Taxdeductiblegoodwill>
	<cgnx:Taxdeductiblegoodwill contextRef="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="0" id="Fact-27150294FCAE5B8954C7FA5BD4E6E4CB" unitRef="usd">902000</cgnx:Taxdeductiblegoodwill>
	<cgnx:Taxdeductiblegoodwill contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="0" id="Fact-6C27900ABE8535F9009BFA5BD4A3C79A" unitRef="usd">5112000</cgnx:Taxdeductiblegoodwill>
	<cgnx:TaxyearsforAPAagreement contextRef="FD2018Q4YTD" id="Fact-1CFD929E09ACB3C9A425FA5BD4DF5EA6">Between 2014 and 2018</cgnx:TaxyearsforAPAagreement>
	<cgnx:Totalsharesrepurchased contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member" decimals="0" id="Fact-48342A0238E8DB1DE669FA5BD46440CA" unitRef="shares">1744000</cgnx:Totalsharesrepurchased>
	<cgnx:TreasuryBillsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-1C8F5ED7BC305F2C9A7CFA5BD4FA86A1" unitRef="usd">0</cgnx:TreasuryBillsFairValueDisclosure>
	<cgnx:TreasuryBillsFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-F118497CB38F4AACE944FA5BD4F9FF49" unitRef="usd">231237000</cgnx:TreasuryBillsFairValueDisclosure>
	<cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets contextRef="FI2017Q4" decimals="0" id="Fact-454D985795E738BC2607FA5BD4873834" unitRef="usd">1028000</cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets>
	<cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets contextRef="FI2018Q4" decimals="0" id="Fact-CCF75360E13ACA37C871FA5BD485B776" unitRef="usd">1028000</cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets>
	<cgnx:VoteEntitledForEachCommonShareOutstanding contextRef="FI2018Q4" decimals="INF" id="Fact-E7337D00990ECFA74464FA5BD46B5EBF" unitRef="Vote">1</cgnx:VoteEntitledForEachCommonShareOutstanding>
	<dei:AmendmentFlag contextRef="FD2018Q4YTD" id="Fact-D1C69370343AA69D82F2FA5BD49F92FB">false</dei:AmendmentFlag>
	<dei:CurrentFiscalYearEndDate contextRef="FD2018Q4YTD" id="Fact-730752DE11ADE6A8E7A6FA5BD49B5B0E">--12-31</dei:CurrentFiscalYearEndDate>
	<dei:DocumentFiscalPeriodFocus contextRef="FD2018Q4YTD" id="Fact-BB9B5E0CB4D254E8BC44FA5BD4984831">FY</dei:DocumentFiscalPeriodFocus>
	<dei:DocumentFiscalYearFocus contextRef="FD2018Q4YTD" id="Fact-A57DEC1DFB0C39810ED7FA5BD49D0924">2018</dei:DocumentFiscalYearFocus>
	<dei:DocumentPeriodEndDate contextRef="FD2018Q4YTD" id="Fact-7DE7B6972A12002585EFFA5BD49A6859">2018-12-31</dei:DocumentPeriodEndDate>
	<dei:DocumentType contextRef="FD2018Q4YTD" id="Fact-4E70FCB9C792F5E468B7FA5BD49695F4">10-K</dei:DocumentType>
	<dei:EntityCentralIndexKey contextRef="FD2018Q4YTD" id="Fact-C7C5711F0AB69AB99257FA5BD4974980">0000851205</dei:EntityCentralIndexKey>
	<dei:EntityCommonStockSharesOutstanding contextRef="I2019Q1Stock" decimals="INF" id="Fact-1672F02090E5C9F811EAFA5BD49BABDF" unitRef="shares">170831424</dei:EntityCommonStockSharesOutstanding>
	<dei:EntityCurrentReportingStatus contextRef="FD2018Q4YTD" id="Fact-E55CDD60F57E572B88BFFA5BD48E1490">Yes</dei:EntityCurrentReportingStatus>
	<dei:EntityEmergingGrowthCompany contextRef="FD2018Q4YTD" id="Fact-638D31E81B5107620BD6E363A01BDC12">false</dei:EntityEmergingGrowthCompany>
	<dei:EntityFilerCategory contextRef="FD2018Q4YTD" id="Fact-6AF5523689F4A27B7831FA5BD49F44ED">Large Accelerated Filer</dei:EntityFilerCategory>
	<dei:EntityPublicFloat contextRef="FI2018Q2" decimals="0" id="Fact-C770F10DD730071BB15BFA5BD49E9426" unitRef="usd">7312677834</dei:EntityPublicFloat>
	<dei:EntityRegistrantName contextRef="FD2018Q4YTD" id="Fact-CACE9D41BB7394AC2D36FA5BD49ECC69">COGNEX CORP</dei:EntityRegistrantName>
	<dei:EntityShellCompany contextRef="FD2018Q4YTD" id="Fact-2700B7736A8E1C1DC100E363D6057BE9">false</dei:EntityShellCompany>
	<dei:EntitySmallBusiness contextRef="FD2018Q4YTD" id="Fact-966786AA12824C2BFB8CE360EE2F84A8">false</dei:EntitySmallBusiness>
	<dei:EntityVoluntaryFilers contextRef="FD2018Q4YTD" id="Fact-64E472BFD7B413AE83A3FA5BD496559D">No</dei:EntityVoluntaryFilers>
	<dei:EntityWellKnownSeasonedIssuer contextRef="FD2018Q4YTD" id="Fact-29FDE2071E39ACB05CF4FA5BD49026F1">Yes</dei:EntityWellKnownSeasonedIssuer>
	<dei:TradingSymbol contextRef="FD2018Q4YTD" id="Fact-E15E5CEA0427D68E17E7FA5BD49897F5">CGNX</dei:TradingSymbol>
	<us-gaap:AccountsPayableCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-C7784EE853CC41A6B21AFA5BD440B196" unitRef="usd">23463000</us-gaap:AccountsPayableCurrent>
	<us-gaap:AccountsPayableCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-2B3900BDA9A2940AB12CFA5BD45D3BD8" unitRef="usd">16230000</us-gaap:AccountsPayableCurrent>
	<us-gaap:AccountsReceivableNetCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-F2531DC15138FD5F6CF3FA5BD4FF0D78" unitRef="usd">119388000</us-gaap:AccountsReceivableNetCurrent>
	<us-gaap:AccountsReceivableNetCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-0D5167404FA15F3C4A2EFA5BD4605AF2" unitRef="usd">119172000</us-gaap:AccountsReceivableNetCurrent>
	<us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments contextRef="FD2016Q4YTD" decimals="-3" id="Fact-FFFC64660B6C00741259FA5BD44B79E5" unitRef="usd">-383000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
	<us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments contextRef="FD2017Q4YTD" decimals="-3" id="Fact-038966CBB1F54639CBD8FA5BD466CBA8" unitRef="usd">-205000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
	<us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments contextRef="FD2018Q4YTD" decimals="-3" id="Fact-1175023B4EFD6B60EE4EFA5BD45C1B63" unitRef="usd">-108000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
	<us-gaap:AccruedBonusesCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-00279009EF6B9F0075ADFA5BD47FEC32" unitRef="usd">13721000</us-gaap:AccruedBonusesCurrent>
	<us-gaap:AccruedBonusesCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-314E1375C197A9D3DD68FA5BD487D02E" unitRef="usd">9134000</us-gaap:AccruedBonusesCurrent>
	<us-gaap:AccruedIncomeTaxesCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-C99CF657ADEB620818E5FA5BD4FA61CC" unitRef="usd">11503000</us-gaap:AccruedIncomeTaxesCurrent>
	<us-gaap:AccruedIncomeTaxesCurrent contextRef="FI2017Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-2447BEF23FA13D466F05962E12BE5985" unitRef="usd">112000</us-gaap:AccruedIncomeTaxesCurrent>
	<us-gaap:AccruedIncomeTaxesCurrent contextRef="FI2017Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-05220DCAF093EA7C926B962E064EFCF3" unitRef="usd">11391000</us-gaap:AccruedIncomeTaxesCurrent>
	<us-gaap:AccruedIncomeTaxesCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-9857AB691A4A2E0D34C1FA5BD51A73F8" unitRef="usd">5062000</us-gaap:AccruedIncomeTaxesCurrent>
	<us-gaap:AccruedIncomeTaxesNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-104E453E1B5EA716630EFA5BD4EF1BE6" unitRef="usd">66741000</us-gaap:AccruedIncomeTaxesNoncurrent>
	<us-gaap:AccruedIncomeTaxesNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-2BE80D6E805AF2EE242FFA5BD4622C5E" unitRef="usd">51113000</us-gaap:AccruedIncomeTaxesNoncurrent>
	<us-gaap:AccruedLiabilitiesCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-E32C87E0CE4C633D23D5FA5BD501EEDE" unitRef="usd">68249000</us-gaap:AccruedLiabilitiesCurrent>
	<us-gaap:AccruedLiabilitiesCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-E30D1451D61E0F303958FA5BD4FC173B" unitRef="usd">60220000</us-gaap:AccruedLiabilitiesCurrent>
	<us-gaap:AccruedSalariesCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-D3A992874B320B46F820627F6A544B16" unitRef="usd">9944000</us-gaap:AccruedSalariesCurrent>
	<us-gaap:AccruedSalariesCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-9CD438645C8892F29357627F687AF058" unitRef="usd">11039000</us-gaap:AccruedSalariesCurrent>
	<us-gaap:AccruedVacationCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-0D031C174171240F491EFA5BD48275BE" unitRef="usd">5479000</us-gaap:AccruedVacationCurrent>
	<us-gaap:AccruedVacationCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-F5C20E8F94A64F2D8469FA5BD488BEC4" unitRef="usd">6507000</us-gaap:AccruedVacationCurrent>
	<us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="FI2017Q4" decimals="-3" id="Fact-6ACFE432CAF814562E36FA5BD4CABEB4" unitRef="usd">79704000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
	<us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="FI2018Q4" decimals="-3" id="Fact-B465E9D7CCAEE5074098FA5BD4D0BCE3" unitRef="usd">92074000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
	<us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="FI2017Q4" decimals="0" id="Fact-26055E40E81E1EF795D5FA5BD4AFCE89" unitRef="usd">58000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
	<us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="FI2018Q4" decimals="0" id="Fact-90410E86ED860E672949FA5BD4AF765D" unitRef="usd">1744000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
	<us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax contextRef="FI2017Q4" decimals="0" id="Fact-A399402E80EB26B7D99BFA5BD4AC34E2" unitRef="usd">33270000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
	<us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax contextRef="FI2018Q4" decimals="0" id="Fact-72B400F3C0212B95F111FA5BD4BA6D1E" unitRef="usd">37486000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
	<us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember" decimals="-3" id="Fact-C8579BEF7B10991FDCD1FA5BD4C5F30F" unitRef="usd">37000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
	<us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="FI2017Q4" decimals="-3" id="Fact-907B09B562EE00B687FCFA5BD45F1E96" unitRef="usd">-34599000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
	<us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember" decimals="-3" id="Fact-AD1FC4E39E8325CD79BEFA5BD4C174C7" unitRef="usd">0</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
	<us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="FI2018Q4" decimals="-3" id="Fact-99E595D94C82DCD25C0AFA5BD4EFBC03" unitRef="usd">-40501000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
	<us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember" decimals="-3" id="Fact-59FEE9E65AC5A1D0E2BEFA5BD4C0973F" unitRef="usd">0</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
	<us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="D2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member" id="Fact-AAEC40374BBFBE48B8E8FA5BD4C28A2E">P5Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
	<us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="D2016Q3Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" id="Fact-423317C4174A2A45EA6CFA5BD4BB38C5">P7Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
	<us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="D2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" id="Fact-5FDE35B3B56C0FE5A66BFA5BD4CC68F6">P7Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
	<us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="D2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" id="Fact-E37A9F7ED6C7BA3802F3FA5BD4B7C3CC">P5Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
	<us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="D2016Q4Dec09_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" id="Fact-3212987DB1C2E96D1B63FA5BD4B762FC">P7Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
	<us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" id="Fact-DC09C8286E81F727B478FA5BD4A76052">P3Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
	<us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" id="Fact-F129447358A1218460A6FA5BD4C1B88B">P6Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
	<us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" id="Fact-20108BFE4D4B507D8634FA5BD4A2754A">P8Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
	<us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" id="Fact-DF80B872C041425CDE49FA5BD4BCB849">P5Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
	<us-gaap:AdditionalPaidInCapitalCommonStock contextRef="FI2017Q4" decimals="-3" id="Fact-C6B1B6C9A6B6454680EEFA5BD4FF88CE" unitRef="usd">461338000</us-gaap:AdditionalPaidInCapitalCommonStock>
	<us-gaap:AdditionalPaidInCapitalCommonStock contextRef="FI2018Q4" decimals="-3" id="Fact-774CA8830D8918A169BCFA5BD502965E" unitRef="usd">529208000</us-gaap:AdditionalPaidInCapitalCommonStock>
	<us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="FD2017Q4YTD" decimals="0" id="Fact-B5169FB5440DEE55C6D9FA5BD4A02EBB" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
	<us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-5C7046030AB93F9D10DDFA5BD4B6AB22" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
	<us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="FD2018Q4YTD" decimals="0" id="Fact-27F22FFA3251D7B68036FA5BD4473166" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
	<us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="FD2016Q4YTD" decimals="-3" id="Fact-82C6273042305DE4159CFA5BD4CE8C53" unitRef="usd">20558000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
	<us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-21C585DDDB232269C80BFA5BD51AFCEA" unitRef="usd">20558000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
	<us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="FD2017Q4YTD" decimals="-3" id="Fact-65F95D5803786D01A00EFA5BD511CDA4" unitRef="usd">31942000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
	<us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-F1F7956E73D2F113CD04FA5BD519BFDC" unitRef="usd">31942000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
	<us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="FD2018Q4YTD" decimals="-3" id="Fact-199DEC00E082292E3D98FA5BD4C6115A" unitRef="usd">41090000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
	<us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-4A59D920888C8BD19673FA5BD461D3C6" unitRef="usd">41090000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
	<us-gaap:AdvertisingExpense contextRef="FD2016Q4YTD" decimals="0" id="Fact-AEEBCFED3F0883DB6107FA5BD4B8A1C3" unitRef="usd">1674000</us-gaap:AdvertisingExpense>
	<us-gaap:AdvertisingExpense contextRef="FD2017Q4YTD" decimals="0" id="Fact-FB7CB90FEBCF233F484BFA5BD4A9D029" unitRef="usd">1679000</us-gaap:AdvertisingExpense>
	<us-gaap:AdvertisingExpense contextRef="FD2018Q4YTD" decimals="0" id="Fact-595F440820E74276C5E1FA5BD4B931C6" unitRef="usd">1662000</us-gaap:AdvertisingExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2016Q4YTD" decimals="-3" id="Fact-F3959D22BF3653755B99FA5BD48D8924" unitRef="usd">20558000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2016Q4YTD" decimals="0" id="Fact-8B9C36F57DB97766033DFA5BD4FEA2B3" unitRef="usd">20558000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2016Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember" decimals="-3" id="Fact-E98EAD9A8768E4655C55FA5BD4FEDB44" unitRef="usd">1052000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2016Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember" decimals="-3" id="Fact-117F26CC748FC0F59172FA5BD47957D7" unitRef="usd">13235000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2016Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" decimals="-3" id="Fact-261916CD66EAAF639252FA5BD478C19D" unitRef="usd">6271000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2017Q4YTD" decimals="0" id="Fact-5F1CCC2286AE1726F00AFA5BD47766DB" unitRef="usd">31942000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2017Q4YTD" decimals="-3" id="Fact-135C2512DB906D88425CFA5BD4E0667C" unitRef="usd">31942000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember" decimals="-3" id="Fact-C1E5324D298D65BFBF9BFA5BD4FD0829" unitRef="usd">1881000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember" decimals="-3" id="Fact-DC64C337640B0C7A35FDFA5BD50078DC" unitRef="usd">19039000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" decimals="-3" id="Fact-D1FC132287A2C4507EEFFA5BD4FE03DA" unitRef="usd">11022000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2018Q4YTD" decimals="0" id="Fact-AE514EC588C57105832AFA5BD47885EC" unitRef="usd">41090000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2018Q4YTD" decimals="-3" id="Fact-4888DCC9A27ABE4C43B5FA5BD4BD6766" unitRef="usd">41090000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember" decimals="-3" id="Fact-D5E666CB636B89C78ED7FA5BD4FF43BE" unitRef="usd">2447000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember" decimals="-3" id="Fact-343DCE937D309603822DFA5BD47A176D" unitRef="usd">24065000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AllocatedShareBasedCompensationExpense contextRef="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" decimals="-3" id="Fact-11B946037F4E2C7EEE7AFA5BD47DAA50" unitRef="usd">14578000</us-gaap:AllocatedShareBasedCompensationExpense>
	<us-gaap:AmortizationOfIntangibleAssets contextRef="FD2016Q4YTD" decimals="-3" id="Fact-C5149DD253C3E4BD1360FA5BD4766CAB" unitRef="usd">3391000</us-gaap:AmortizationOfIntangibleAssets>
	<us-gaap:AmortizationOfIntangibleAssets contextRef="FD2017Q4YTD" decimals="-3" id="Fact-2A253A9B541826E411D9FA5BD45AC1D5" unitRef="usd">3308000</us-gaap:AmortizationOfIntangibleAssets>
	<us-gaap:AmortizationOfIntangibleAssets contextRef="FD2018Q4YTD" decimals="-3" id="Fact-3881C97C5B859014B8AFFA5BD45682EC" unitRef="usd">3076000</us-gaap:AmortizationOfIntangibleAssets>
	<us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="FD2016Q4YTD" decimals="0" id="Fact-F9B5A150123A721B57F9FA5BD4908BFF" unitRef="shares">4391598</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
	<us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="FD2017Q4QTD" decimals="0" id="Fact-15FA85AD3F393F0DE083E77DA99FFB71" unitRef="shares">7145</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
	<us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="FD2017Q4YTD" decimals="0" id="Fact-B2F22DCB019981F59994FA5BD4C01B03" unitRef="shares">3363141</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
	<us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="FD2018Q4YTD" decimals="0" id="Fact-639A24912FDA0201EE6EFA5BD4827DA2" unitRef="shares">2650164</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
	<us-gaap:AssetImpairmentCharges contextRef="FD2016Q4YTD" decimals="-3" id="Fact-756B305ACFE89D0851DAFA5BD4773D33" unitRef="usd">0</us-gaap:AssetImpairmentCharges>
	<us-gaap:AssetImpairmentCharges contextRef="FD2017Q4YTD" decimals="-3" id="Fact-7D0735DBED1F8BC926C1FA5BD462F6AB" unitRef="usd">469000</us-gaap:AssetImpairmentCharges>
	<us-gaap:AssetImpairmentCharges contextRef="FD2018Q4YTD" decimals="-3" id="Fact-3FA4A4FACF0BCF02E522FA5BD46568C8" unitRef="usd">0</us-gaap:AssetImpairmentCharges>
	<us-gaap:Assets contextRef="FI2017Q4" decimals="-3" id="Fact-AD7ECAAB537CBF053861FA5BD51933EA" unitRef="usd">1287753000</us-gaap:Assets>
	<us-gaap:Assets contextRef="FI2018Q4" decimals="-3" id="Fact-B5286E6D29473EF2E56EFA5BD4FED556" unitRef="usd">1289667000</us-gaap:Assets>
	<us-gaap:AssetsCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-6C4E19A84665017A7001FA5BD4EE9F3E" unitRef="usd">629991000</us-gaap:AssetsCurrent>
	<us-gaap:AssetsCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-0D4EF35B5DEC4ECBA5B5FA5BD4FBE0DD" unitRef="usd">780326000</us-gaap:AssetsCurrent>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4" decimals="-3" id="Fact-2856BFEC5A4CD7FABEB0FA5BD44F3988" unitRef="usd">691319000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-723DBD96A249C0CA83B7FA5BD4570987" unitRef="usd">5930000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-C33E8FA419A70D5EC3B9FA5BD4990AFD" unitRef="usd">53693000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-FDC8691B38FAEAE32A85FA5BD47753ED" unitRef="usd">78628000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-CCB944567B1B2DA3C56AFA5BD46BC9C3" unitRef="usd">163847000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-4E38F666CA386F5ACA254D3679229957" unitRef="usd">138219000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-98581CD92BAF14DADE54FA5BD46F128B" unitRef="usd">855000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-78A87A2A363CB83B9B4B4D36F3445A4E" unitRef="usd">4492000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-76C1526EB3CDC5F4C8274D3850D3C069" unitRef="usd">6286000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-EABD8323FAF5C2373185FA5BD4A2A2EE" unitRef="usd">8135000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-F7D6DA94C23A55ACEAA3FA5BD4574189" unitRef="usd">32722000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-DE7325E1C56BBDBF63DDFA5BD48FF7E0" unitRef="usd">198512000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4" decimals="-3" id="Fact-C8BDF22E9C34B25B1D4BFA5BD46D7D3A" unitRef="usd">323000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-13B812AE94422EDE8E2DFA5BD450FC32" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-51A011B1E802D091E2A7FA5BD49F5847" unitRef="usd">55000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-41937D4195251D3E5BC2FA5BD49708BB" unitRef="usd">15000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-4C4769FE7130E25C0E6AFA5BD497FBD1" unitRef="usd">107000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-991D57C6DE85E2233A164D367BE6E1BD" unitRef="usd">27000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-49B29D7BE5846A391294FA5BD490868A" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-D4DA1A0D760E269B85BE4D36F6C03B54" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-E459EE127C5D1319CA434D385449DDF5" unitRef="usd">30000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-97A8884222943AFA082BFA5BD49D3F6B" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-7E78021FE3B731FB85E4FA5BD44FBE8E" unitRef="usd">51000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-DD37F8F48222D6C24DDCFA5BD489E5ED" unitRef="usd">38000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4" decimals="-3" id="Fact-F77655199D7A65E2DD16FA5BD4A33EB1" unitRef="usd">2255000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-5E28140E5CC305A918CAFA5BD4A0A05D" unitRef="usd">9000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-DFEE7725A5ABFBE24DF0FA5BD49C549A" unitRef="usd">117000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-D78163D7D4C8D89B6592FA5BD46D8F5A" unitRef="usd">236000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-61D71384014540F14D01FA5BD48D709A" unitRef="usd">1388000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-E61DD414D5BA51B0BE6D4D367F9742F2" unitRef="usd">375000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-D1ADB1169BD8362F7761FA5BD487A1F1" unitRef="usd">10000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-64B551FC0E6BCDF75BDB4D36FA1B0A92" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-6FB2CCDF9FBDB1F483664D3857864911" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-880AAAD5283E27078774FA5BD4A09984" unitRef="usd">34000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-AD1D19947EAEB9668446FA5BD47660A3" unitRef="usd">13000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-5AC9349BE405FE7194E6FA5BD49E86D6" unitRef="usd">73000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="FI2018Q4" decimals="-3" id="Fact-8BC5F05E4FCF4BD54051FA5BD50CE228" unitRef="usd">810000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-C2C315E0867D94BE0526FA5BD507D1BE" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-86665742AB5BE442F2E6FA5BD50DE0E6" unitRef="usd">262000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-4BAAE0B731A80AD9F89C4D39074A123C" unitRef="usd">495000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-10D631788210A39013024D39A2B71018" unitRef="usd">10000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-34008E352B1F88C019C7FA5BD502B2E7" unitRef="usd">30000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-1EC10E2C1C3E20D67E8DFA5BD502EA4F" unitRef="usd">13000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss contextRef="FI2018Q4" decimals="-3" id="Fact-166ABDA6B526BADF5FBAFA5BD50A9108" unitRef="usd">2255000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-A98AB52B9B640E853227FA5BD5035AA0" unitRef="usd">9000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-63E991F3C03A194A0698FA5BD50B735C" unitRef="usd">353000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-9CB57316D368223281684D390BA52FE8" unitRef="usd">1763000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-0663427323F46F7C9A19FA5BD50515A7" unitRef="usd">10000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-680F369DD63BE2E90470FA5BD507B144" unitRef="usd">34000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-02C7AEC8449B10B9466CFA5BD5080D78" unitRef="usd">86000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue contextRef="FI2018Q4" decimals="-3" id="Fact-4D2A1CA0D4CCA991839AFA5BD50BD5AA" unitRef="usd">482683000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-E4D9895735CC8FDCC561FA5BD50CD5B9" unitRef="usd">5920000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-D40408CEE13C0700B317FA5BD50BAB6E" unitRef="usd">92347000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-7C9731BBA4914D10700D4D390914EDF0" unitRef="usd">245482000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-2F78A08745405BD3C7E9FA5BD50D680C" unitRef="usd">2147000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-F6DD2A9AE6EF2A06A5D9FA5BD509DEC9" unitRef="usd">8101000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-FDBF7682BA0DAC4E533DFA5BD5040F6A" unitRef="usd">128686000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="FI2018Q4" decimals="-3" id="Fact-BDF9769DB01DBB101B32FA5BD500ED30" unitRef="usd">1445000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-E38162402A36C3F63A58FA5BD50A5A60" unitRef="usd">9000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-DA2C1CF904486F9BF1E3FA5BD5066FC4" unitRef="usd">91000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-CE35DED888C53EF6F2104D3902C61718" unitRef="usd">1268000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-847CD65303ABBE2BF5A7FA5BD504BF2B" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-46A0A53054D5B9FD1572FA5BD509D6F6" unitRef="usd">4000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-F6C7568A6D60A1266A35FA5BD504C449" unitRef="usd">73000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue contextRef="FI2018Q4" decimals="-3" id="Fact-4C8F5CD4ABA884279EF5FA5BD50C8786" unitRef="usd">318908000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-98502BD55B40D5308DA6FA5BD5007D84" unitRef="usd">5920000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-3F20E585058557F8E718FA5BD509E8BB" unitRef="usd">47762000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-C24A42E271A4A0D8B1534D3900E75322" unitRef="usd">145596000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-A08246B848CC3FBE59CBFA5BD5089E4C" unitRef="usd">1302000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-CFC66D2D4E8A02D750D8FA5BD5067464" unitRef="usd">3492000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-E43A97CA2C8ACCF43BEAFA5BD5017DCF" unitRef="usd">114836000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue contextRef="FI2018Q4" decimals="-3" id="Fact-049E3EA0C3845E857E40FA5BD5033AB6" unitRef="usd">163775000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-2D5A14F31F5C87561657FA5BD508919B" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-71BA3CB818BBF5C59B6DFA5BD503A51F" unitRef="usd">44585000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-AC731A05B770F71E7C794D39052B6B33" unitRef="usd">99886000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-93C0537DFC3A00ED402FFA5BD503EB93" unitRef="usd">845000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-4C98950B6835984CD160FA5BD5066470" unitRef="usd">4609000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
	<us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-C121125D82C00733404AFA5BD50DBAC7" unitRef="usd">13850000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
	<us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="FI2018Q4" decimals="-3" id="Fact-A38EB7BF76C04BEAA9D5FA5BD5056D99" unitRef="usd">427348000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
	<us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-6D7B1F34B1BD0C7943CBFA5BD510A1B0" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
	<us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-6570CE41C2B446130007FA5BD508D534" unitRef="usd">78407000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
	<us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-8CAF2110DAE981EB2501FA5BD50BBFA4" unitRef="usd">137871000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
	<us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-37506974B961F1CFE9F3FA5BD5094E68" unitRef="usd">4492000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
	<us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-9411DEDA9DCC4234FFF8FA5BD504DE45" unitRef="usd">8101000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
	<us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-0D5B4650AD83742D6CD3FA5BD503CECD" unitRef="usd">198477000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4" decimals="-3" id="Fact-160865658C59C028A19EFA5BD4961AEB" unitRef="usd">689387000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-B8613EB4B68420AC5934FA5BD4FFB0B6" unitRef="usd">5921000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-9E58F229AAC265F56B0FFA5BD490FF83" unitRef="usd">5921000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-7C44DEAC80A48F3C1DF9FA5BD50672F0" unitRef="usd">132038000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-4DA2F6113B2B9455CF64FA5BD4A1EC5F" unitRef="usd">53631000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-598AED703492CCD24D22FA5BD4A19DD5" unitRef="usd">78407000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-4BCDE768EE35609F1B97FA5BD505AB6A" unitRef="usd">300437000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-B7E38E7D73F3D9D712A5FA5BD48F445F" unitRef="usd">162566000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-D603E0C51368CFB341DC4D3682F67773" unitRef="usd">137871000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-38030C68B855CE76F94EFA5BD5014416" unitRef="usd">5337000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-F79FB52D578530917C29FA5BD498F8C5" unitRef="usd">845000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-E73CB30644BBFADAD93D4D36FD5B4876" unitRef="usd">4492000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-1C08DB288F51DCF0157EFA5BD50B24BE" unitRef="usd">14417000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-B45094827C79C56BC0974D385A3FF46E" unitRef="usd">6316000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-4B4ACD53316442B50237FA5BD48CB160" unitRef="usd">8101000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" decimals="-3" id="Fact-879B7B7A3140AE34E253FA5BD4EBD198" unitRef="usd">231237000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" decimals="-3" id="Fact-6B22755053098F117A96FA5BD4569D77" unitRef="usd">32760000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" decimals="-3" id="Fact-F28334287A0D8CE270E8FA5BD46E76CE" unitRef="usd">198477000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-10A9475743D79283DBD5FA5BD4FD33B5" unitRef="usd">297961000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-20163822C9AD5E64DE92FA5BD4AD0206" unitRef="usd">10608000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-103F759468379B6643EEFA5BD4AB1323" unitRef="usd">59203000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-B557C94D69F4913F8A174D34248D6ECF" unitRef="usd">47395000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-2D105A89FB76BF040C9E4D34C163DD15" unitRef="usd">8805000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-D59EB9793225F0209167FA5BD49ACBF6" unitRef="usd">21579000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember" decimals="-3" id="Fact-63FFFA03058B399BAC79FA5BD4A900C4" unitRef="usd">150371000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-F066E26AC85403754D86FA5BD4F991AE" unitRef="usd">427348000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-CA04C3053A863BC6DDA2FA5BD4A2DBF9" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-059594071909B46F467EFA5BD4AA426B" unitRef="usd">78407000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-33D480C685EA9A86A84F4D3422378460" unitRef="usd">137871000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-2B04729C1538B484D90A4D34BF1388E1" unitRef="usd">4492000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-51BEBC9F0816F34C2ACDFA5BD49EAC41" unitRef="usd">8101000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember" decimals="-3" id="Fact-0B5AC6775D8548CC66BEFA5BD4A7B2C4" unitRef="usd">198477000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-8FA349BA77046AE2776DFA5BD4A162C5" unitRef="usd">14890000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-DDB5C9776167DB0CC195FA5BD49B8F18" unitRef="usd">71727000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-8AE7AB2012F555EF2BB3FA5BD4AA51D2" unitRef="usd">296014000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-F8BF993F1FBDFCCA0B9FFA5BD49B500D" unitRef="usd">4204000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-C4546CF2DCD9B8E26FE54D357DD8317B" unitRef="usd">13147000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2017Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember" decimals="-3" id="Fact-653A5BC21A3ADB7E1588FA5BD4AC23D8" unitRef="usd">23459000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" decimals="-3" id="Fact-B9BB06B37BD3B4A1EFD0FA5BD49F9F49" unitRef="usd">5921000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" decimals="-3" id="Fact-7563C44FFD7CFF59B6BAFA5BD4A3C354" unitRef="usd">53631000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" decimals="-3" id="Fact-8AEA3692E9B82AAC5A46FA5BD4A7BDFC" unitRef="usd">162566000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" decimals="-3" id="Fact-BBC3575DE239C370F805FA5BD4AA1C40" unitRef="usd">845000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" decimals="-3" id="Fact-3E678F185B99FBE29A7F4D357BE60273" unitRef="usd">6316000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember" decimals="-3" id="Fact-4B3E56A269D4CA6BF62EFA5BD4A2404B" unitRef="usd">32760000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
	<us-gaap:AvailableForSaleSecuritiesGrossRealizedGains contextRef="FD2016Q4YTD" decimals="0" id="Fact-F3CE2A3FE58FAAC3F5CEFA5BD470E23B" unitRef="usd">292000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
	<us-gaap:AvailableForSaleSecuritiesGrossRealizedGains contextRef="FD2017Q4YTD" decimals="0" id="Fact-1BB2851EDE5E81C962B8FA5BD47ABCE2" unitRef="usd">929000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
	<us-gaap:AvailableForSaleSecuritiesGrossRealizedGains contextRef="FD2018Q4YTD" decimals="0" id="Fact-542BD3F3E2AA056BB862FA5BD46D1B82" unitRef="usd">669000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
	<us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses contextRef="FD2016Q4YTD" decimals="0" id="Fact-8450F6D881FD3D98A869FA5BD46FEF53" unitRef="usd">101000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
	<us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses contextRef="FD2017Q4YTD" decimals="0" id="Fact-42B4983CA01388ADE506FA5BD47A2FEC" unitRef="usd">100000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
	<us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses contextRef="FD2018Q4YTD" decimals="0" id="Fact-3BF2D753F92A66D33DD4FA5BD4782C6D" unitRef="usd">168000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
	<us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="0" id="Fact-3D982E958640AC60FFA0FA5BD4E833AD" unitRef="usd">443000</us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount>
	<us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="D2016Q3Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-FFD02EDB740B172E6B75FA5BD4E72D19" unitRef="usd">4149000</us-gaap:BusinessCombinationConsiderationTransferred1>
	<us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="D2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="-3" id="Fact-F14C1D0459E7B2816E9FFA5BD4BD3E29" unitRef="usd">3176000</us-gaap:BusinessCombinationConsiderationTransferred1>
	<us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="D2016Q4Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-CC6ADB47DE9197ADCDC1FA5BD4E5504F" unitRef="usd">7901000</us-gaap:BusinessCombinationConsiderationTransferred1>
	<us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-242F8FDDDD220DE7A489FA5BD4EC8494" unitRef="usd">23015000</us-gaap:BusinessCombinationConsiderationTransferred1>
	<us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-17A3F1841DC037C7A7DAFA5BD469E477" unitRef="usd">5368000</us-gaap:BusinessCombinationConsiderationTransferred1>
	<us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-DC58516DF8D37904233CFA5BD4EC41FA" unitRef="usd">2996000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="FD2016Q4YTD" decimals="-3" id="Fact-EA3A1E5862AE30B0F5BCFA5BD47743B6" unitRef="usd">-463000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="FD2017Q4YTD" decimals="-3" id="Fact-65DB1EE57C2A4BEFB315FA5BD47062C5" unitRef="usd">-28000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-8F1306B69DED04279459FA5BD4C894C6" unitRef="usd">15000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-380BF35EB03110DB04C1FA5BD467BCA9" unitRef="usd">282000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="FD2018Q4YTD" decimals="-3" id="Fact-4D8323C2D790F894AC08FA5BD4473719" unitRef="usd">-3000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-59E32044567E53BD6CB1E4546334CA88" unitRef="usd">282000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-FD333A22AA85AD821EE2E451A09B2484" unitRef="usd">1065000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh contextRef="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-EE415F2E656B418E09735E6D3BE0F472" unitRef="usd">1250000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="INF" id="Fact-7A2494BFBEB4067A81D95E5143C1768B" unitRef="usd">2500000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow contextRef="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-49BEC84EF057E3E519FB5E6D1F68F8FC" unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow>
	<us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="INF" id="Fact-744E3FCFEB09B18139125E51298C7AC8" unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow>
	<us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="FI2017Q4_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-E0AACDAC2123CB369217FA5BD4E77C5E" unitRef="usd">1581000</us-gaap:BusinessCombinationContingentConsiderationLiability>
	<us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="FI2018Q4_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-3B330A7218C466FE6841E4504DCACAB1" unitRef="usd">1646000</us-gaap:BusinessCombinationContingentConsiderationLiability>
	<us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-B57C89BA8982E01539D0776D72ECA1A4" unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationLiability>
	<us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-3020833A04DC72A72A5A776D66A1D25E" unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationLiability>
	<us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-5960B7873340586205E0FA5BD4F9FF25" unitRef="usd">2544000</us-gaap:BusinessCombinationContingentConsiderationLiability>
	<us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-F6484C164CAC35413793FA5BD4BD831E" unitRef="usd">1299000</us-gaap:BusinessCombinationContingentConsiderationLiability>
	<us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent contextRef="FI2018Q4_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-2FF7F237629F8AACE1D6710EA931C8A6" unitRef="usd">1362000</us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent>
	<us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent contextRef="FI2017Q4_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-1C7F461A53F0938E575FFA5BD4A95C75" unitRef="usd">626000</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
	<us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent contextRef="FI2018Q4_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-A1F82EAD547E833E7820E4549061ADDC" unitRef="usd">908000</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
	<us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent contextRef="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-6C2ADAB211BBBDD6B578FA5BD4686541" unitRef="usd">611000</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-7BC56E639A9F7DE0AAA0FA5BD4883DE8" unitRef="usd">167000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-FC9859F3D8EFA7DE36ADFA5BD4F0C707" unitRef="usd">146000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-35A8B8A6E33BE5CEC59AFA5BD4DDCF75" unitRef="usd">1896000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets contextRef="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="-3" id="Fact-D1471B9E10C5E1A33981FA5BD47F0975" unitRef="usd">8000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets contextRef="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-4D7A4E70E6F6CDFD2573FA5BD4EE2321" unitRef="usd">3000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-805F5C1D2D4CF0C272C8FA5BD4ED2032" unitRef="usd">129000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-381742E832B53024B5E3FA5BD4BCF1E9" unitRef="usd">1000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables contextRef="I2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member" decimals="-3" id="Fact-7B038F356A6A5B6DC84DFA5BD4DF9C69" unitRef="usd">168000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-D23288FBB3F1021A2ECDFA5BD4975E40" unitRef="usd">4000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables contextRef="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="-3" id="Fact-ADF2138343ED8F8EC231FA5BD49783CB" unitRef="usd">504000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-9ABEFF11890C12331148FA5BD4EC6D74" unitRef="usd">425000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-49435B2A7198EB0BDA10FA5BD4983D8B" unitRef="usd">423000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-BF94203A413E38F87E9CFA5BD4C4D600" unitRef="usd">6000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable contextRef="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="-3" id="Fact-38E36BD72A5A7BCC8AB2FA5BD4872CF3" unitRef="usd">77000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-CA9AF3EF05B1005CA3B6FA5BD4EF91DE" unitRef="usd">98000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-35D0C43BF184EFD7DB4CFA5BD4A7C271" unitRef="usd">152000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-52E46EA60D06CC3E51F8FA5BD4EFD8BB" unitRef="usd">620000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-AFB0724F5CC30094FF75FA5BD4EF5BC2" unitRef="usd">1008000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" decimals="-3" id="Fact-B22B83917D41F0D08085FA5BD4E0CD65" unitRef="usd">598000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" decimals="-3" id="Fact-21C50D446F862F93E929FA5BD4ED89E8" unitRef="usd">384000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" decimals="-3" id="Fact-9D2E57102452F686BE20FA5BD4A5C106" unitRef="usd">447000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" decimals="-3" id="Fact-706C7452FE5C97D108F7FA5BD4C2C1DA" unitRef="usd">1089000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" decimals="-3" id="Fact-FFE4524931D66851DCC8FA5BD486104F" unitRef="usd">680000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" decimals="-3" id="Fact-E533F144C684602123F8FA5BD4E7ACC2" unitRef="usd">840000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" decimals="-3" id="Fact-6830CBA5C45A70B9C7E8FA5BD4E7034B" unitRef="usd">1350000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" decimals="-3" id="Fact-BDE59541685E6B7AB516FA5BD4EECCE6" 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="Fact-15088AFA3C10A1136A46FA5BD4BF3FB1" unitRef="usd">4774000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" decimals="-3" id="Fact-191C0E3E3ADCF18D384DFA5BD4CA4A99" unitRef="usd">2600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" decimals="-3" id="Fact-920AD81BD009DA2D4C5FFA5BD4C76557" unitRef="usd">910000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-36208566125AB71BD42DFA5BD4A86A6C" unitRef="usd">79000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory contextRef="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="-3" id="Fact-5F5666370768A27B5773FA5BD4E6B553" unitRef="usd">296000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-2608881424D2A30E75B4FA5BD4803541" unitRef="usd">120000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-1B33214BD82EEF3B39EEFA5BD4A0B165" unitRef="usd">44000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-817983B4AAF94D7744CAFA5BD4ED1516" unitRef="usd">40000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="I2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member" decimals="-3" id="Fact-522751DE2047501FD20CFA5BD4E1C304" unitRef="usd">2519000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-6B3208BAFADAD3942BCAFA5BD49AAD38" unitRef="usd">7901000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="-3" id="Fact-C5A8C9F7414A179CEF6CFA5BD4C83951" unitRef="usd">3176000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-86D44EBEF1D5C396658AFA5BD4CC4437" unitRef="usd">4149000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-54B868AB7853ECD92E41FA5BD4BF571D" unitRef="usd">23015000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
	<us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-5E3A911E89BA3F00A62AFA5BD4EDCE33" unitRef="usd">5368000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
	<us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized contextRef="FI2017Q4" decimals="-3" id="Fact-56BD492C2BF1219B4D36627FD7822EF4" unitRef="usd">6022000</us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized>
	<us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized contextRef="FI2018Q4" decimals="-3" id="Fact-9A459C040B7E77FBBAC3627FD632D7A5" unitRef="usd">431000</us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized>
	<us-gaap:CapitalizedContractCostGross contextRef="FI2017Q4" decimals="0" id="Fact-4898D99394DA6B0173C977E17CEA57F5" unitRef="usd">3230000</us-gaap:CapitalizedContractCostGross>
	<us-gaap:CapitalizedContractCostGross contextRef="FI2018Q4" decimals="0" id="Fact-574835BE97BF13D03F0577E147FC3BEF" unitRef="usd">3514000</us-gaap:CapitalizedContractCostGross>
	<us-gaap:Cash contextRef="FI2017Q4" decimals="-3" id="Fact-5FA1ECB8C05FD1685D67FA5BD49AC02D" unitRef="usd">97951000</us-gaap:Cash>
	<us-gaap:Cash contextRef="FI2017Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember" decimals="0" id="Fact-8D520600192D14EBA4D89FC702FADD3E" unitRef="usd">498653000</us-gaap:Cash>
	<us-gaap:Cash contextRef="FI2018Q4" decimals="-3" id="Fact-0048168945A6D77CEC24FA5BD4991E23" unitRef="usd">104655000</us-gaap:Cash>
	<us-gaap:Cash contextRef="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember" decimals="0" id="Fact-60C93415271D61FCC1EF9FC69A3DFE79" unitRef="usd">446346000</us-gaap:Cash>
	<us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="FI2015Q4" decimals="-3" id="Fact-C6AE6CF3B1AD8F89B373FA5BD468A9EB" unitRef="usd">51975000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
	<us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="FI2016Q4" decimals="-3" id="Fact-285A38B7933D6F726134FA5BD46EECD1" unitRef="usd">79641000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
	<us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="FI2017Q4" decimals="-3" id="Fact-D8B31FC5CA4F45CF9522FA5BD501FD2F" unitRef="usd">106582000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
	<us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="FI2018Q4" decimals="-3" id="Fact-F08D3F8F74C7E1BBA16EFA5BD4EE72EA" unitRef="usd">108212000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
	<us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="FD2016Q4YTD" decimals="-3" id="Fact-175B957EF972C702B1AAFA5BD442CA36" unitRef="usd">27666000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
	<us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="FD2017Q4YTD" decimals="-3" id="Fact-DF6F90A042980D87DDFCFA5BD44DC90E" unitRef="usd">26941000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
	<us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="FD2018Q4YTD" decimals="-3" id="Fact-868AFB53B8727A8172CDFA5BD459D88B" unitRef="usd">1630000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
	<us-gaap:CommitmentsAndContingencies contextRef="FI2017Q4" id="Fact-F71BDB0A516A070086A2FA5BD5049AA6" unitRef="usd" xsi:nil="true" />
	<us-gaap:CommitmentsAndContingencies contextRef="FI2018Q4" id="Fact-055C3DD879B76AD4ABF1FA5BD4F17E8D" unitRef="usd" xsi:nil="true" />
	<us-gaap:CommonStockDividendsPerShareCashPaid contextRef="FD2016Q4YTD" decimals="4" id="Fact-E633FED3EF87937F9E65FA5BD44323A3" unitRef="usdPerShare">0.1475</us-gaap:CommonStockDividendsPerShareCashPaid>
	<us-gaap:CommonStockDividendsPerShareCashPaid contextRef="FD2017Q4YTD" decimals="4" id="Fact-D5156C510F3ACCFA5140FA5BD444EB51" unitRef="usdPerShare">0.1675</us-gaap:CommonStockDividendsPerShareCashPaid>
	<us-gaap:CommonStockDividendsPerShareCashPaid contextRef="FD2018Q4YTD" decimals="4" id="Fact-D179419CD888AF9477E5FA5BD460DD6B" unitRef="usdPerShare">0.1850</us-gaap:CommonStockDividendsPerShareCashPaid>
	<us-gaap:CommonStockDividendsPerShareDeclared contextRef="FD2017Q1QTD" decimals="4" id="Fact-74B34E6A5EDA80D9586CFA5BD467A3E2" unitRef="usdPerShare">0.0375</us-gaap:CommonStockDividendsPerShareDeclared>
	<us-gaap:CommonStockDividendsPerShareDeclared contextRef="FD2017Q4QTD" decimals="4" id="Fact-BF52605A421E67ED76E477EA63D5C24E" unitRef="usdPerShare">0.0450</us-gaap:CommonStockDividendsPerShareDeclared>
	<us-gaap:CommonStockDividendsPerShareDeclared contextRef="FD2018Q3QTD" decimals="4" id="Fact-C944A6151A7D229BAE00FA5BD465D9FE" unitRef="usdPerShare">0.0425</us-gaap:CommonStockDividendsPerShareDeclared>
	<us-gaap:CommonStockDividendsPerShareDeclared contextRef="FD2018Q4QTD" decimals="4" id="Fact-76BC4631823C3282F580FA5BD46F6BC6" unitRef="usdPerShare">0.0500</us-gaap:CommonStockDividendsPerShareDeclared>
	<us-gaap:CommonStockParOrStatedValuePerShare contextRef="FI2017Q4" decimals="INF" id="Fact-A477B3BCABD388704F50FA5BD4C1F295" unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
	<us-gaap:CommonStockParOrStatedValuePerShare contextRef="FI2018Q4" decimals="INF" id="Fact-11C68540311104BA40E4FA5BD4C46A55" unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
	<us-gaap:CommonStockParOrStatedValuePerShare contextRef="I2017Q4Oct" decimals="INF" id="Fact-B9AD6C18896C8203FCA0FA5BD46AB12E" unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
	<us-gaap:CommonStockSharesAuthorized contextRef="FI2017Q4" decimals="INF" id="Fact-FFF0F0B166D2DED38748FA5BD4C33B11" unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
	<us-gaap:CommonStockSharesAuthorized contextRef="FI2018Q4" decimals="INF" id="Fact-A34E18B5DE3DA0DFC132FA5BD4C3CF63" unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
	<us-gaap:CommonStockSharesAuthorized contextRef="I2016Q2Apr27" decimals="INF" id="Fact-FA9702623D8E86CD4625FA5BD4702139" unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
	<us-gaap:CommonStockSharesAuthorized contextRef="I2016Q2Apr28" decimals="INF" id="Fact-C47A4ECDEA4EB48C55DE77E5926099A3" unitRef="shares">10000000</us-gaap:CommonStockSharesAuthorized>
	<us-gaap:CommonStockSharesAuthorized contextRef="I2018Q2Apr25" decimals="INF" id="Fact-9B8D1D55D30213B64574FA5BD45FB4C0" unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
	<us-gaap:CommonStockSharesIssued contextRef="FI2015Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-FBA0673FF76AE4350B1FFA5BD4D6FE9F" unitRef="shares">169712000</us-gaap:CommonStockSharesIssued>
	<us-gaap:CommonStockSharesIssued contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-2AE21E93430FE86DF378FA5BD5078CD1" unitRef="shares">171878000</us-gaap:CommonStockSharesIssued>
	<us-gaap:CommonStockSharesIssued contextRef="FI2017Q4" decimals="-3" id="Fact-0B62CD237B4C809466CEFA5BD4C40DEC" unitRef="shares">173507000</us-gaap:CommonStockSharesIssued>
	<us-gaap:CommonStockSharesIssued contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-659C2A221B5868131883FA5BD4C9BBE5" unitRef="shares">173507000</us-gaap:CommonStockSharesIssued>
	<us-gaap:CommonStockSharesIssued contextRef="FI2018Q4" decimals="-3" id="Fact-20B1E5D55C6E73B8A0A5FA5BD4C20D23" unitRef="shares">170820000</us-gaap:CommonStockSharesIssued>
	<us-gaap:CommonStockSharesIssued contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-17D06648D8E7EF020266FA5BD4581667" unitRef="shares">170820000</us-gaap:CommonStockSharesIssued>
	<us-gaap:CommonStockSharesOutstanding contextRef="FI2017Q4" decimals="-3" id="Fact-DA267FDD26821E534BC3FA5BD4C21BBE" unitRef="shares">173507000</us-gaap:CommonStockSharesOutstanding>
	<us-gaap:CommonStockSharesOutstanding contextRef="FI2018Q4" decimals="-3" id="Fact-5EEC650512093A9A721DFA5BD4C667DE" unitRef="shares">170820000</us-gaap:CommonStockSharesOutstanding>
	<us-gaap:CommonStockValueOutstanding contextRef="FI2017Q4" decimals="-3" id="Fact-5639C6FF7581B5CDAD35FA5BD50004A5" unitRef="usd">347000</us-gaap:CommonStockValueOutstanding>
	<us-gaap:CommonStockValueOutstanding contextRef="FI2018Q4" decimals="-3" id="Fact-3DB4754F98B4FA3E28B0FA5BD5006EF2" unitRef="usd">342000</us-gaap:CommonStockValueOutstanding>
	<us-gaap:ComprehensiveIncomeNetOfTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-FEA456DCA5A7220A7212FA5BD44AC0F5" unitRef="usd">139390000</us-gaap:ComprehensiveIncomeNetOfTax>
	<us-gaap:ComprehensiveIncomeNetOfTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-C4E61189193456254C9DFA5BD5055274" unitRef="usd">198541000</us-gaap:ComprehensiveIncomeNetOfTax>
	<us-gaap:ComprehensiveIncomeNetOfTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-B36753DDC178031A4AEAFA5BD50C12F7" unitRef="usd">213365000</us-gaap:ComprehensiveIncomeNetOfTax>
	<us-gaap:ConcentrationRiskPercentage1 contextRef="FD2016Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" decimals="2" id="Fact-6569CA220436CB2678E0E3D04D36B1D8" unitRef="number">0.10</us-gaap:ConcentrationRiskPercentage1>
	<us-gaap:ConcentrationRiskPercentage1 contextRef="FD2016Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" decimals="2" id="Fact-F561BA05B615E763BB9FFA5BD4E2D23C" unitRef="number">0.17</us-gaap:ConcentrationRiskPercentage1>
	<us-gaap:ConcentrationRiskPercentage1 contextRef="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" decimals="2" id="Fact-67CBDC0AE05F87DF5F9BE3D02A7C7902" unitRef="number">0.40</us-gaap:ConcentrationRiskPercentage1>
	<us-gaap:ConcentrationRiskPercentage1 contextRef="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" decimals="2" id="Fact-6F9288D5ADFE5BB819D3FA5BD4E1399A" unitRef="number">0.20</us-gaap:ConcentrationRiskPercentage1>
	<us-gaap:ConcentrationRiskPercentage1 contextRef="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" decimals="2" id="Fact-DF17893D3D583D98313BE3D0129F0F16" unitRef="number">0.30</us-gaap:ConcentrationRiskPercentage1>
	<us-gaap:ConcentrationRiskPercentage1 contextRef="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" decimals="2" id="Fact-C0CA5F90CCFCE7708CACFA5BD4CCF71A" unitRef="number">0.15</us-gaap:ConcentrationRiskPercentage1>
	<us-gaap:ContractWithCustomerLiabilityCurrent contextRef="FI2016Q4" decimals="-3" id="Fact-12C264E0BFC1512D25D1964B0061330A" unitRef="usd">7078000</us-gaap:ContractWithCustomerLiabilityCurrent>
	<us-gaap:ContractWithCustomerLiabilityCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-5CC7FFAA2A0758EEB3C0FA5BD4F06307" unitRef="usd">9420000</us-gaap:ContractWithCustomerLiabilityCurrent>
	<us-gaap:ContractWithCustomerLiabilityCurrent contextRef="FI2017Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-0D3C1A3DBD79B4E71C64962F876D2615" unitRef="usd">-549000</us-gaap:ContractWithCustomerLiabilityCurrent>
	<us-gaap:ContractWithCustomerLiabilityCurrent contextRef="FI2017Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-069063DAAF1AD967BE87962F96701EF5" unitRef="usd">9969000</us-gaap:ContractWithCustomerLiabilityCurrent>
	<us-gaap:ContractWithCustomerLiabilityCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-EBCC091DF78FB277D641FA5BD51B3D52" unitRef="usd">9845000</us-gaap:ContractWithCustomerLiabilityCurrent>
	<us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="FD2017Q4YTD" decimals="-3" id="Fact-B15E3B7F896368A3EC8A964D48AC9C96" unitRef="usd">23195000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
	<us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="FD2018Q4YTD" decimals="-3" id="Fact-50085C72A59BB8C21F4F964D48BB18F8" unitRef="usd">61819000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
	<us-gaap:CostOfGoodsAndServicesSold contextRef="FD2016Q4YTD" decimals="-3" id="Fact-7F73DC9321370609CE97FA5BD5175961" unitRef="usd">131070000</us-gaap:CostOfGoodsAndServicesSold>
	<us-gaap:CostOfGoodsAndServicesSold contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-37BC0589ACB6E3A84DDA962A59ADE346" unitRef="usd">15480000</us-gaap:CostOfGoodsAndServicesSold>
	<us-gaap:CostOfGoodsAndServicesSold contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-176C0AE26985FCCE00CF962A5743D738" unitRef="usd">115590000</us-gaap:CostOfGoodsAndServicesSold>
	<us-gaap:CostOfGoodsAndServicesSold contextRef="FD2017Q4YTD" decimals="-3" id="Fact-7B3CE14DCFEAB205CCA8FA5BD45D45B5" unitRef="usd">187289000</us-gaap:CostOfGoodsAndServicesSold>
	<us-gaap:CostOfGoodsAndServicesSold contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-1510346839985F3F40CE96175D61D0D8" unitRef="usd">18591000</us-gaap:CostOfGoodsAndServicesSold>
	<us-gaap:CostOfGoodsAndServicesSold contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-DA9BF19AD0184F336A5F9617427FF9D3" unitRef="usd">168698000</us-gaap:CostOfGoodsAndServicesSold>
	<us-gaap:CostOfGoodsAndServicesSold contextRef="FD2018Q4YTD" decimals="-3" id="Fact-14D40F09B88259D8FA54FA5BD51A9ADD" unitRef="usd">206052000</us-gaap:CostOfGoodsAndServicesSold>
	<us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption contextRef="FI2017Q4" decimals="-3" id="Fact-DD8BAA2915C858888B29966AB1BEBE79" unitRef="usd">-5961000</us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption>
	<us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-BE98B61EE6E9CEC9827F966AB1AF0A5B" unitRef="usd">-5961000</us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption>
	<us-gaap:CumulativeEffectOnRetainedEarningsNetOfTax1 contextRef="D2018Q1Jan1_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201616Member" decimals="0" id="Fact-42B8AE5421FC570BE6C59FD3103975E7" unitRef="usd">5961000</us-gaap:CumulativeEffectOnRetainedEarningsNetOfTax1>
	<us-gaap:CurrentFederalTaxExpenseBenefit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-0C217B27DC2F7E39584EFA5BD4844091" unitRef="usd">14459000</us-gaap:CurrentFederalTaxExpenseBenefit>
	<us-gaap:CurrentFederalTaxExpenseBenefit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-C12106A0BA69A88BD358FA5BD48CD755" unitRef="usd">78152000</us-gaap:CurrentFederalTaxExpenseBenefit>
	<us-gaap:CurrentFederalTaxExpenseBenefit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-F98CB6D738F183274DC6FA5BD4881F51" unitRef="usd">10624000</us-gaap:CurrentFederalTaxExpenseBenefit>
	<us-gaap:CurrentForeignTaxExpenseBenefit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-13D47007EF8F2B136B4AFA5BD48436A0" unitRef="usd">7309000</us-gaap:CurrentForeignTaxExpenseBenefit>
	<us-gaap:CurrentForeignTaxExpenseBenefit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-BAA00025FB8A33AA08ECFA5BD48482B8" unitRef="usd">7624000</us-gaap:CurrentForeignTaxExpenseBenefit>
	<us-gaap:CurrentForeignTaxExpenseBenefit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-85809FFCB4CF3E23C3CDFA5BD488B65C" unitRef="usd">6307000</us-gaap:CurrentForeignTaxExpenseBenefit>
	<us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-A70D1CFA5A0632050A01FA5BD48D6281" unitRef="usd">21151000</us-gaap:CurrentIncomeTaxExpenseBenefit>
	<us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-27452A04129BDD3929D3FA5BD483C6F4" unitRef="usd">88463000</us-gaap:CurrentIncomeTaxExpenseBenefit>
	<us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-F200302EEED73DFC7D69FA5BD47D7053" unitRef="usd">16052000</us-gaap:CurrentIncomeTaxExpenseBenefit>
	<us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-A84F2DE6BD8077C0B0F9FA5BD4A1AE50" unitRef="usd">-617000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
	<us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-8FA17AE36292F8E55E7BFA5BD486163C" unitRef="usd">2687000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
	<us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-D8CCC1C19384AE71168CFA5BD4869583" unitRef="usd">-879000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
	<us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-2AC3CAE6B71821E923FBFA5BD49822E8" unitRef="usd">-3031000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
	<us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-FDE3232A479F47A8D09DFA5BD48211B6" unitRef="usd">1569000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
	<us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-82DCCC31F8998818649EFA5BD4901886" unitRef="usd">-1271000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
	<us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-DB0ECA5894C7EAAC3113FA5BD46D0221" unitRef="usd">-1058000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
	<us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-93DEEDC6699D3B7D28CBFA5BD480614D" unitRef="usd">359000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
	<us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-48F53DC08700C2A072F9FA5BD48030AC" unitRef="usd">-28000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
	<us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-2B94E05AF46D7BB634F1FA5BD487098A" unitRef="usd">-3023000</us-gaap:DeferredIncomeTaxExpenseBenefit>
	<us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-C3EEE957A29F14D50BEEFA5BD48C0BCB" unitRef="usd">1289000</us-gaap:DeferredIncomeTaxExpenseBenefit>
	<us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-DE7632BA17E3E17CA9D7FA5BD47F6A11" unitRef="usd">-745000</us-gaap:DeferredIncomeTaxExpenseBenefit>
	<us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="FI2017Q4" decimals="-3" id="Fact-94A0E3DDF8D829655588FA5BD4635F3A" unitRef="usd">312000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
	<us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="FI2018Q4" decimals="-3" id="Fact-366C7E1B1D7D0A332E0CFA5BD4FC5E69" unitRef="usd">962000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
	<us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-CCBD36AA25126CF5932AFA5BD47CF3ED" unitRef="usd">1066000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
	<us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-9277F6A9DBDDF7DEAC16FA5BD4829799" unitRef="usd">-639000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
	<us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-82DC5D343798F2A53AC5FA5BD483CAC6" unitRef="usd">554000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
	<us-gaap:DeferredTaxAssetsGrossNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-CF093B23F58A9B0F8D12FA5BD4E942EF" unitRef="usd">32781000</us-gaap:DeferredTaxAssetsGrossNoncurrent>
	<us-gaap:DeferredTaxAssetsGrossNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-B710059FA934BB5B6B41FA5BD4677BA4" unitRef="usd">34816000</us-gaap:DeferredTaxAssetsGrossNoncurrent>
	<us-gaap:DeferredTaxAssetsInventory contextRef="FI2017Q4" decimals="-3" id="Fact-3D6D07CB89085AD1B352FA5BD4EAA31A" unitRef="usd">3415000</us-gaap:DeferredTaxAssetsInventory>
	<us-gaap:DeferredTaxAssetsInventory contextRef="FI2018Q4" decimals="-3" id="Fact-A17D3EFDAB7AA11236D9FA5BD4ECF891" unitRef="usd">3233000</us-gaap:DeferredTaxAssetsInventory>
	<us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-F88DB4206B570C4AF9ADFA5BD4EC1091" unitRef="usd">27385000</us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent>
	<us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-DED2806FC711AFA7D65CFA5BD4654551" unitRef="usd">28660000</us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent>
	<us-gaap:DeferredTaxAssetsNetNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-5551926AFC23EFAB3987FA5BD4FFEC6E" unitRef="usd">27385000</us-gaap:DeferredTaxAssetsNetNoncurrent>
	<us-gaap:DeferredTaxAssetsNetNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-1A0504463608A3901CE8FA5BD4FEBF69" unitRef="usd">28660000</us-gaap:DeferredTaxAssetsNetNoncurrent>
	<us-gaap:DeferredTaxAssetsStateTaxes contextRef="FI2018Q4" decimals="0" id="Fact-534862875C55A0FB73119FC16F4F747C" unitRef="usd">620000</us-gaap:DeferredTaxAssetsStateTaxes>
	<us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch contextRef="FI2018Q4_us-gaap_TaxCreditCarryforwardAxis_cgnx_StateResearchAndExperimentationMember" decimals="0" id="Fact-83D0665026EE75733829FA5BD4C00968" unitRef="usd">8423000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
	<us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther contextRef="FI2017Q4" decimals="-3" id="Fact-FF317F446385E1C2046BFA5BD4EA381D" unitRef="usd">5704000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
	<us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther contextRef="FI2018Q4" decimals="-3" id="Fact-C0D0E3E9B6E2CC754AECFA5BD4662EC6" unitRef="usd">5470000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
	<us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="FI2017Q4" decimals="-3" id="Fact-CA953FEE4F097B3C4BFFFA5BD4A638E0" unitRef="usd">6707000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
	<us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="FI2018Q4" decimals="-3" id="Fact-0E51BB23FB1C10940072FA5BD4607DA5" unitRef="usd">7395000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
	<us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther contextRef="FI2017Q4" decimals="0" id="Fact-83AB111F5F274A0DA67E85432B2609A6" unitRef="usd">2502000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther>
	<us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther contextRef="FI2018Q4" decimals="0" id="Fact-D02FD251276DF253B6B78549E6F0B089" unitRef="usd">1847000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther>
	<us-gaap:DeferredTaxAssetsValuationAllowance contextRef="FI2018Q4_us-gaap_TaxCreditCarryforwardAxis_us-gaap_ResearchMember" decimals="0" id="Fact-7BA367063EC371FF95F7FA5BD4803EC9" unitRef="usd">803000</us-gaap:DeferredTaxAssetsValuationAllowance>
	<us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-A3687F3BAE7F3F27C6B8FA5BD4EE2281" unitRef="usd">5309000</us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent>
	<us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-B75BD1ABFC67561C02D7FA5BD4A6BECB" unitRef="usd">6112000</us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent>
	<us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets contextRef="FI2017Q4" decimals="-3" id="Fact-B60FD65661097BF478A6FA5BD462F9AB" unitRef="usd">87000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
	<us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets contextRef="FI2018Q4" decimals="-3" id="Fact-FC02C9DC258B7813C1A3FA5BD4EB9BE8" unitRef="usd">44000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
	<us-gaap:DeferredTaxLiabilitiesGrossCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-EBF7355AE2AE599B9606FA5BD4EBADDB" unitRef="usd">312000</us-gaap:DeferredTaxLiabilitiesGrossCurrent>
	<us-gaap:DeferredTaxLiabilitiesGrossCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-984BC71079276F183F10FA5BD4A8CEA1" unitRef="usd">962000</us-gaap:DeferredTaxLiabilitiesGrossCurrent>
	<us-gaap:DeferredTaxLiabilitiesGrossNoncurrent contextRef="FI2017Q4" decimals="0" id="Fact-8BFEC1FB3FB438289177FA5BD48104D0" unitRef="usd">7516000</us-gaap:DeferredTaxLiabilitiesGrossNoncurrent>
	<us-gaap:DeferredTaxLiabilitiesGrossNoncurrent contextRef="FI2018Q4" decimals="0" id="Fact-25B6E38D4529D55AB826FA5BD4C4ADED" unitRef="usd">8134000</us-gaap:DeferredTaxLiabilitiesGrossNoncurrent>
	<us-gaap:DeferredTaxLiabilitiesNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-A341B53C6E65B14E8576FA5BD4EBBA41" unitRef="usd">87000</us-gaap:DeferredTaxLiabilitiesNoncurrent>
	<us-gaap:DeferredTaxLiabilitiesNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-A6740192256923C86D4DFA5BD4EC7B80" unitRef="usd">44000</us-gaap:DeferredTaxLiabilitiesNoncurrent>
	<us-gaap:DeferredTaxLiabilitiesOther contextRef="FI2017Q4" decimals="-3" id="Fact-2601C1413DB36BB02D00FA5BD464C070" unitRef="usd">312000</us-gaap:DeferredTaxLiabilitiesOther>
	<us-gaap:DeferredTaxLiabilitiesOther contextRef="FI2018Q4" decimals="-3" id="Fact-B92A8F324F537E63DDF1FA5BD4653351" unitRef="usd">962000</us-gaap:DeferredTaxLiabilitiesOther>
	<us-gaap:DefinedContributionPlanCostRecognized contextRef="FD2016Q4YTD" decimals="0" id="Fact-3C01598394DA730720A1FA5BD4C46CF9" unitRef="usd">1712000</us-gaap:DefinedContributionPlanCostRecognized>
	<us-gaap:DefinedContributionPlanCostRecognized contextRef="FD2017Q4YTD" decimals="0" id="Fact-F15EE7DFC5E4D144C67DFA5BD4CBCD6C" unitRef="usd">2030000</us-gaap:DefinedContributionPlanCostRecognized>
	<us-gaap:DefinedContributionPlanCostRecognized contextRef="FD2018Q4YTD" decimals="0" id="Fact-ED95A81CA2F70AD79FC9FA5BD4BD003D" unitRef="usd">2540000</us-gaap:DefinedContributionPlanCostRecognized>
	<us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent contextRef="FD2018Q4YTD" decimals="INF" id="Fact-692FA99F27B6119E6344FA5BD4BFEC9A" unitRef="number">0.06</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
	<us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch contextRef="FD2018Q4YTD" decimals="INF" id="Fact-0FF783474F0EB49B91D477F2E0D7BEEB" unitRef="number">0.5</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
	<us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent contextRef="D2018Q4JantoOct2018" decimals="INF" id="Fact-2F1612D4FAB74E15B66CFA5BD4BCC33E" unitRef="number">0.5</us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent>
	<us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent contextRef="D2018Q4NovtoDec" decimals="INF" id="Fact-D4735C459D1AEAD60E6077F293BA80E1" unitRef="number">100</us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent>
	<us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent contextRef="FD2018Q4YTD_us-gaap_TitleOfIndividualAxis_cgnx_HighlyCompensatedEmployeeMember" decimals="INF" id="Fact-FF429BD5DCF2BAFCC323FA5BD4C95186" unitRef="number">0.25</us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent>
	<us-gaap:Depreciation contextRef="FD2016Q4YTD" decimals="-3" id="Fact-1AC767B9761419D53CDFFA5BD4670112" unitRef="usd">11678000</us-gaap:Depreciation>
	<us-gaap:Depreciation contextRef="FD2017Q4YTD" decimals="-3" id="Fact-1749FC8FE15F2B13D3F3FA5BD46F64E0" unitRef="usd">13683000</us-gaap:Depreciation>
	<us-gaap:Depreciation contextRef="FD2018Q4YTD" decimals="-3" id="Fact-F415D3D9869763BF708CFA5BD46DCD0C" unitRef="usd">18473000</us-gaap:Depreciation>
	<us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset contextRef="FI2017Q4" decimals="-3" id="Fact-E6B4ABD1B32DB78E1133FA5BD461300E" unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
	<us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset contextRef="FI2018Q4" decimals="-3" id="Fact-C272F46850DBF8FB4038FA5BD461CB1D" unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-C0BCE1CAD752D72C0AD14D40E45DBF5C" unitRef="twd">0</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-099DB6CBD15A0CDFE4714D40E75D3CAC" unitRef="usd">0</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_CHF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-63C14CE1F2B24A599760FA5BD50178F3" unitRef="usd">1401000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_CHF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-0610711769077C277793FA5BD4FC74C6" unitRef="twd">1365000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-05888C2ED5603199DF734D4036235EB8" unitRef="usd">0</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-90001E390021DDD579B84D4033219C48" unitRef="iso4217_JPY">0</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-35301B9555BB1E9F928C4D3DD0A87809" unitRef="usd">2232000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-096735A6BA57BE1196724D3DCE7089ED" unitRef="gbp">1650000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-2C237E78F0FF0D4CE5F9FA5BD4FCEBD1" unitRef="usd">2110000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-5FECBAEAFAF98D5F502BFA5BD4FABE4E" unitRef="huf">545000000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-B83956E754488DB68649FA5BD4FCBA7A" unitRef="iso4217_JPY">455000000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-28989DB4C41963C0DBE1FA5BD465F8AB" unitRef="usd">4049000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-DA860AF720411A490C10FA5BD4FE3723" unitRef="usd">1708000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-B595B4AC3145790FE830FA5BD4FB4F8E" unitRef="iso4217_KRW">1825000000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-2FA2A6C5BF52F2B67AC0FA5BD45D7452" unitRef="sgd">0</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-C3C98AE4FE3CF39DED3AFA5BD504BA03" unitRef="usd">0</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-6EFF3B19D4FB06EF4FB64D3ECBD99C49" unitRef="twd">37725000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2017Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-E5F9596ABB2ED20926C84D3ECE4A7CF7" unitRef="usd">1278000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-42DF3FD8D2BAA13B2D1E4D40DE13E7DB" unitRef="twd">990000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-1606086774BE4AB6AAC44D40E0E18050" unitRef="usd">726000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_CHF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-B8430A5DE7C2AE84DE6DFA5BD50412B3" unitRef="usd">0</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_CHF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-D6BBD4B00F40C5C3F0C6FA5BD500EFCB" unitRef="twd">0</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-33BAB9F78D89CBFBDFF34D3F5C5C610E" 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="Fact-FE2889A69325A3462E3A4D3FD59B9D86" unitRef="usd">26330000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-C1C8CF7F53603486FC644D3DC8EC7AAF" unitRef="gbp">2500000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-784E59D3C113DFFFAEE64D3DCB58EE69" unitRef="usd">3204000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-411B1EB51C9872975716FA5BD4FDD112" unitRef="usd">2685000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-15992FECB4A97DC26692FA5BD4FDED0E" unitRef="huf">750000000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-F654651D0DA3BC590024FA5BD4FFABD5" 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="Fact-1FE14C8C63D6002740A6FA5BD4FAFDDF" unitRef="usd">3459000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-0A5C77504F5623A592F7FA5BD4F757F4" unitRef="usd">2808000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-309CB69A8309E5E92899FA5BD4F8F15B" unitRef="iso4217_KRW">3125000000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-DBB7621210B6D02470F0FA5BD4F8129F" unitRef="sgd">700000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-C7AFD8EAEC506461B5F6FA5BD4F9635E" unitRef="usd">514000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-763D0F1255E55CF1002F4D3EC68A55EE" unitRef="twd">55000000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssetNotionalAmount contextRef="FI2018Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-BC8C77294A424CD5BE6A4D3EC8E9103C" unitRef="usd">1807000</us-gaap:DerivativeAssetNotionalAmount>
	<us-gaap:DerivativeAssets contextRef="FI2017Q4" decimals="-3" id="Fact-2A5AAEA331F77FB2A051FA5BD45E6D5B" unitRef="usd">16000</us-gaap:DerivativeAssets>
	<us-gaap:DerivativeAssets contextRef="FI2017Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-4EAFEB87B8CC4BEA2771FA5BD4AC7266" unitRef="usd">16000</us-gaap:DerivativeAssets>
	<us-gaap:DerivativeAssets contextRef="FI2018Q4" decimals="-3" id="Fact-51994E49866BFFDD9073FA5BD463743E" unitRef="usd">1000</us-gaap:DerivativeAssets>
	<us-gaap:DerivativeAssets contextRef="FI2018Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-2572ABFFA4586524097EFA5BD4AAF09D" unitRef="usd">1000</us-gaap:DerivativeAssets>
	<us-gaap:DerivativeFairValueOfDerivativeAsset contextRef="FI2017Q4" decimals="-3" id="Fact-07BAA20063801939611EFA5BD465F7EC" unitRef="usd">16000</us-gaap:DerivativeFairValueOfDerivativeAsset>
	<us-gaap:DerivativeFairValueOfDerivativeAsset contextRef="FI2018Q4" decimals="-3" id="Fact-33262F873A81BA1434E2FA5BD45C40C5" unitRef="usd">1000</us-gaap:DerivativeFairValueOfDerivativeAsset>
	<us-gaap:DerivativeFairValueOfDerivativeLiability contextRef="FI2017Q4" decimals="-3" id="Fact-98E811DEA29923FC4C7CFA5BD46024C4" unitRef="usd">13000</us-gaap:DerivativeFairValueOfDerivativeLiability>
	<us-gaap:DerivativeFairValueOfDerivativeLiability contextRef="FI2018Q4" decimals="-3" id="Fact-17820044F852E49A1488FA5BD45F500D" unitRef="usd">106000</us-gaap:DerivativeFairValueOfDerivativeLiability>
	<us-gaap:DerivativeGainLossOnDerivativeNet contextRef="FD2016Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember" decimals="-3" id="Fact-A25146AB2A9D363DB16EFA5BD45A9F8B" unitRef="usd">-515000</us-gaap:DerivativeGainLossOnDerivativeNet>
	<us-gaap:DerivativeGainLossOnDerivativeNet contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember" decimals="-3" id="Fact-9DBDC0633BC5B4674D49FA5BD47959DA" unitRef="usd">270000</us-gaap:DerivativeGainLossOnDerivativeNet>
	<us-gaap:DerivativeGainLossOnDerivativeNet contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember" decimals="-3" id="Fact-6AD30067FBBE809B0E4AFA5BD45D8C03" unitRef="usd">-285000</us-gaap:DerivativeGainLossOnDerivativeNet>
	<us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet contextRef="FD2016Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember" decimals="-3" id="Fact-BF5E92A90E5982533131FA5BD479A035" unitRef="usd">27000</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
	<us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet contextRef="FD2016Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" decimals="-3" id="Fact-B533C6233C911D1366CAFA5BD46685ED" unitRef="usd">13000</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
	<us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet contextRef="FD2016Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember" decimals="-3" id="Fact-D62E0C7A4B6DAB1E40FAFA5BD45C89CD" unitRef="usd">-438000</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
	<us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember" decimals="-3" id="Fact-14598EBFEE603B1373ECFA5BD45D8EB3" unitRef="usd">8000</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
	<us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" decimals="-3" id="Fact-798912DE709DB2002663FA5BD47B7CCA" unitRef="usd">3000</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
	<us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember" decimals="-3" id="Fact-0D647D6BAAF659577FD8FA5BD45892CA" unitRef="usd">30000</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
	<us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember" decimals="-3" id="Fact-1983E13853ADA5244884FA5BD47C242A" 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="Fact-828F21ECBF5E042E71A0FA5BD4635B38" 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="Fact-AFB5C42412E9D5275AD6FA5BD47C6701" unitRef="usd">0</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
	<us-gaap:DerivativeLiabilities contextRef="FI2017Q4" decimals="-3" id="Fact-78971C9ECAFA152582FCFA5BD462F693" unitRef="usd">13000</us-gaap:DerivativeLiabilities>
	<us-gaap:DerivativeLiabilities contextRef="FI2017Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-25F8B74C905D1B916962FA5BD4B519F4" unitRef="usd">13000</us-gaap:DerivativeLiabilities>
	<us-gaap:DerivativeLiabilities contextRef="FI2018Q4" decimals="-3" id="Fact-80F4E8EA12E2EB99BB7FFA5BD47B2C7D" unitRef="usd">106000</us-gaap:DerivativeLiabilities>
	<us-gaap:DerivativeLiabilities contextRef="FI2018Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" decimals="-3" id="Fact-6D000AF75026984B8444FA5BD4AE4C9A" unitRef="usd">106000</us-gaap:DerivativeLiabilities>
	<us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset contextRef="FI2017Q4" decimals="-3" id="Fact-707781292F2366014A01FA5BD45BCD3C" unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
	<us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset contextRef="FI2018Q4" decimals="-3" id="Fact-FBDBF1E66DBDEF19C8D8FA5BD45CF4BB" unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
	<us-gaap:DiscontinuedOperationTaxEffectOfDiscontinuedOperation contextRef="FD2016Q4YTD_srt_LitigationCaseAxis_cgnx_AMETEKMatterMember_us-gaap_DisposalGroupClassificationAxis_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_cgnx_SisdMember_us-gaap_LitigationStatusAxis_us-gaap_SettledLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GuaranteeObligationsMember" decimals="0" id="Fact-AB06A2B381AC47BB02A7FA5BD4A3E057" unitRef="usd">-149000</us-gaap:DiscontinuedOperationTaxEffectOfDiscontinuedOperation>
	<us-gaap:DividendsCommonStockCash contextRef="FD2016Q4YTD" decimals="-3" id="Fact-27D1ED1917DB745070ABFA5BD44EE87E" unitRef="usd">25213000</us-gaap:DividendsCommonStockCash>
	<us-gaap:DividendsCommonStockCash contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-A2C843C8B4441AEF650CFA5BD4D7573D" unitRef="usd">25213000</us-gaap:DividendsCommonStockCash>
	<us-gaap:DividendsCommonStockCash contextRef="FD2017Q4YTD" decimals="-3" id="Fact-E4B9AC006421130E7C3CFA5BD4D9CAD3" unitRef="usd">29037000</us-gaap:DividendsCommonStockCash>
	<us-gaap:DividendsCommonStockCash contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-1C902509C267B3A2B73CFA5BD4C3E9D5" unitRef="usd">29037000</us-gaap:DividendsCommonStockCash>
	<us-gaap:DividendsCommonStockCash contextRef="FD2018Q4YTD" decimals="-3" id="Fact-398882E30761F3DD9EC0FA5BD4D9F65B" unitRef="usd">31865000</us-gaap:DividendsCommonStockCash>
	<us-gaap:DividendsCommonStockCash contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-18D15E1529FB6FA49D8AFA5BD4D72C56" unitRef="usd">31865000</us-gaap:DividendsCommonStockCash>
	<us-gaap:DividendsPayableAmountPerShare contextRef="I2019Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember" decimals="INF" id="Fact-5EC125E8F396D6A6D768FA5BD4F79D79" unitRef="usdPerShare">0.0500</us-gaap:DividendsPayableAmountPerShare>
	<us-gaap:DividendsPayableDateDeclaredDayMonthAndYear contextRef="D2019Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember" id="Fact-DB58CE3CCF6C6017A191FA5BD4FCC992">2019-03-15</us-gaap:DividendsPayableDateDeclaredDayMonthAndYear>
	<us-gaap:DividendsPayableDateOfRecordDayMonthAndYear contextRef="D2019Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember" id="Fact-857B141AB35375D9E683FA5BD4F13DC1">2019-03-01</us-gaap:DividendsPayableDateOfRecordDayMonthAndYear>
	<us-gaap:EarningsPerShareBasic contextRef="FD2016Q4YTD" decimals="2" id="Fact-A3961F09A5F2EA16A241FA5BD44B9A36" unitRef="usdPerShare">0.84</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="2" id="Fact-774A38A45D77F5479033962ADC365032" unitRef="usdPerShare">-0.04</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="2" id="Fact-5790CED188D5EFB31D68962ADA6AC045" unitRef="usdPerShare">0.88</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2017Q1QTD" decimals="2" id="Fact-89CC91851A30862FB8D0E7779CAFD24D" unitRef="usdPerShare">0.26</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2017Q2QTD" decimals="2" id="Fact-02E691DD85955A0D92B5E7779ED42C1C" unitRef="usdPerShare">0.33</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2017Q3QTD" decimals="2" id="Fact-6F45AAF2DD326C5697E7E777A07EC833" unitRef="usdPerShare">0.59</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2017Q4QTD" decimals="2" id="Fact-FFEE45D56FFCF3D77EB5E777A2A8F0EE" unitRef="usdPerShare">-0.16</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2017Q4YTD" decimals="2" id="Fact-72482B4D4196CE02BA87FA5BD44B8D94" unitRef="usdPerShare">1.02</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="2" id="Fact-063E545738E38A12DF31961FADFD5D94" unitRef="usdPerShare">0.00</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="2" id="Fact-6411058D3B4E0AA3CCF8961FBB4CEC80" unitRef="usdPerShare">1.02</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2018Q1QTD" decimals="2" id="Fact-A9175CD02246A35DD5DFE7764A144DA7" unitRef="usdPerShare">0.21</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2018Q2QTD" decimals="2" id="Fact-F0A10688AC5AA8086627E77649D348F2" unitRef="usdPerShare">0.33</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2018Q3QTD" decimals="2" id="Fact-9680F8149B45FDF60B64E77649A426FB" unitRef="usdPerShare">0.47</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2018Q4QTD" decimals="2" id="Fact-CA1F0912033B33D31BADE77649B4ACCC" unitRef="usdPerShare">0.26</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareBasic contextRef="FD2018Q4YTD" decimals="2" id="Fact-E766D49AD28867EEE429FA5BD444B99B" unitRef="usdPerShare">1.27</us-gaap:EarningsPerShareBasic>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2016Q4YTD" decimals="2" id="Fact-6AADD5E7D2BD8E581CB4FA5BD441B79F" unitRef="usdPerShare">0.83</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="2" id="Fact-4D4FD745AF46A778E7E3962AE1159DD2" unitRef="usdPerShare">-0.03</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="2" id="Fact-570CF00C0DA9BBA05264962ADF221A9D" unitRef="usdPerShare">0.86</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2017Q1QTD" decimals="2" id="Fact-ABB7FE6C7A57CDFBBF74E777A3D80E09" unitRef="usdPerShare">0.25</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2017Q2QTD" decimals="2" id="Fact-8311962129B9E5DE4A82E777A674824C" unitRef="usdPerShare">0.32</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2017Q3QTD" decimals="2" id="Fact-137BFD18F0F4186E20D8E777A81C6759" unitRef="usdPerShare">0.57</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2017Q4QTD" decimals="2" id="Fact-10AB72164C3BC24E5924E777AA338BD0" unitRef="usdPerShare">-0.16</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2017Q4YTD" decimals="2" id="Fact-10BA0F04647FDB48FF79FA5BD441D86B" unitRef="usdPerShare">0.98</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="2" id="Fact-9B61C4AC0CE4E076FA959620200A5DE7" unitRef="usdPerShare">-0.01</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="2" id="Fact-BA283E4AC46082A2F41C962012CD7B12" unitRef="usdPerShare">0.99</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2018Q1QTD" decimals="2" id="Fact-186E311EF45739B8632EE7766586F532" unitRef="usdPerShare">0.21</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2018Q2QTD" decimals="2" id="Fact-6400070EB48908EA3F88E7766595FC1A" unitRef="usdPerShare">0.32</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2018Q3QTD" decimals="2" id="Fact-522D7F29DDF73C048BABE77665A509EE" unitRef="usdPerShare">0.45</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2018Q4QTD" decimals="2" id="Fact-798DBCA1AB2CAFCD3EC6E77665861B5E" unitRef="usdPerShare">0.26</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EarningsPerShareDiluted contextRef="FD2018Q4YTD" decimals="2" id="Fact-1E805A30C64A1F6B4EE3FA5BD44CA29A" unitRef="usdPerShare">1.24</us-gaap:EarningsPerShareDiluted>
	<us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents contextRef="FD2016Q4YTD" decimals="-3" id="Fact-CECD269806C0AFF26CE7FA5BD444C645" unitRef="usd">-3352000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
	<us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents contextRef="FD2017Q4YTD" decimals="-3" id="Fact-70BB9617DB7936B379EAFA5BD45A0BA3" unitRef="usd">8294000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
	<us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents contextRef="FD2018Q4YTD" decimals="-3" id="Fact-D85C30D037DB3D4230CCFA5BD457304C" unitRef="usd">-1093000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
	<us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="FD2016Q4YTD" decimals="2" id="Fact-2C1D4B3D75D37EA62FDFFA5BD49830AE" unitRef="number">0.11</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
	<us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="FD2017Q4YTD" decimals="2" id="Fact-E78CA0517242D26B4F39FA5BD49B5B86" unitRef="number">0.34</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
	<us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="FD2018Q4YTD" decimals="2" id="Fact-0AF459E9B490DD7D5976FA5BD4964AA2" unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
	<us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="FD2016Q4YTD" decimals="INF" id="Fact-217DF1974220CEBA17A0FA5BD4A15D62" unitRef="number">0.35</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
	<us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="FD2017Q4YTD" decimals="INF" id="Fact-F573D807C8089F1845AFFA5BD48B9C8C" unitRef="number">0.35</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
	<us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="FD2018Q4YTD" decimals="INF" id="Fact-EC8E7926AE2F5C15BA5DFA5BD4CD2B7F" unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
	<us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="FD2016Q4YTD" decimals="2" id="Fact-2352E0AF2F955EDCF785FA5BD49CE872" unitRef="number">0.00</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
	<us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="FD2017Q4YTD" decimals="2" id="Fact-13BF8F81CD91AF9A2346FA5BD4A4FAD6" unitRef="number">0.05</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
	<us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="FD2018Q4YTD" decimals="2" id="Fact-A5343C7DDE86FE72C399FA5BD48E7700" unitRef="number">0.00</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
	<us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate contextRef="FD2016Q4YTD" decimals="2" id="Fact-EC7605A643F70FBD4C15FA5BD4907C00" unitRef="number">0.00</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
	<us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate contextRef="FD2017Q4YTD" decimals="2" id="Fact-CCE2CE6011E0EFBE557EFA5BD485556A" unitRef="number">-0.01</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
	<us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate contextRef="FD2018Q4YTD" decimals="2" id="Fact-40AD5F09EB1023917241FA5BD4A0147B" unitRef="number">0.00</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
	<us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="FD2016Q4YTD" decimals="2" id="Fact-1336B15EA72F30F48482FA5BD48F7701" unitRef="number">-0.17</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
	<us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="FD2017Q4YTD" decimals="2" id="Fact-0DDB829D311FF860AD3EFA5BD4DFFBB3" unitRef="number">-0.27</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
	<us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="FD2018Q4YTD" decimals="2" id="Fact-A34D89D53452245CC9EAFA5BD499643E" unitRef="number">-0.09</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
	<us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="FD2016Q4YTD" decimals="2" id="Fact-13BA66E382454D775DAEFA5BD49E543E" unitRef="number">0.00</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
	<us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="FD2017Q4YTD" decimals="2" id="Fact-61EB5495B94D59455450FA5BD4980ABB" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
	<us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="FD2018Q4YTD" decimals="2" id="Fact-AAE1F3A366D31C5E9F86FA5BD4C720F2" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
	<us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount contextRef="FD2016Q4YTD" decimals="0" id="Fact-3DB9B656CDA0A8949E3B7B686983EA98" unitRef="usd">11889000</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount>
	<us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount contextRef="FD2017Q4YTD" decimals="0" id="Fact-54B8E88A52F2A6E269D77B68349FC77E" unitRef="usd">38569000</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount>
	<us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount contextRef="FD2018Q4YTD" decimals="0" id="Fact-D17EF955D7F9F67AADF87B67E35DF0D8" unitRef="usd">8488000</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount>
	<us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="FD2016Q4YTD" decimals="2" id="Fact-B02F7EEEC3662ADC5CD3FA5BD496DB21" unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
	<us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="FD2017Q4YTD" decimals="2" id="Fact-B705416F65F5FC0CADDFFA5BD48B7BBA" unitRef="number">0.14</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
	<us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="FD2018Q4YTD" decimals="2" id="Fact-28037ACA0E551C303A6BFA5BD48AAF0B" unitRef="number">0.04</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
	<us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="FD2016Q4YTD" decimals="2" id="Fact-64E756F1069112B44937FA5BD49E7B37" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
	<us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="FD2017Q4YTD" decimals="2" id="Fact-3B5C44EBA7FE03512764FA5BD4C0E25D" unitRef="number">0.00</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
	<us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="FD2018Q4YTD" decimals="2" id="Fact-734431C25ABCD9A7B086FA5BD4DE7FEC" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
	<us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="FD2016Q4YTD" decimals="2" id="Fact-B625F2DDDD9A733D1DE0FA5BD48E3301" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
	<us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="FD2017Q4YTD" decimals="2" id="Fact-1EE6EE1ECFF630AF085BFA5BD4A412D7" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
	<us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="FD2018Q4YTD" decimals="2" id="Fact-70730D809D69DEDCC3CBFA5BD46AF3BB" unitRef="number">0.00</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
	<us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="FD2018Q4YTD" id="Fact-61906E0045C8D1264324FA5BD4BE0329">P1Y6M21D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
	<us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions contextRef="FI2018Q4" decimals="0" id="Fact-9DBFF6D83D1E3523A71CFA5BD4DE0C30" unitRef="usd">49229000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
	<us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="FD2016Q4YTD" decimals="0" id="Fact-ED9937753807C2247973FA5BD4DBEB80" unitRef="usd">6747000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
	<us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="FD2017Q4YTD" decimals="0" id="Fact-B6E3A85A66D9864595EBFA5BD4CD3CEA" unitRef="usd">10473000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
	<us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="FD2018Q4YTD" decimals="0" id="Fact-A7034FDA6AEF39F97383FA5BD4DB37DC" unitRef="usd">7317000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
	<us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease contextRef="FD2018Q4YTD" decimals="-3" id="Fact-FE3F08E42B4DBFA567A3FA5BD46AF1D7" unitRef="usd">-1000000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease>
	<us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases contextRef="FD2017Q4YTD" decimals="-3" id="Fact-E73F140C03A77F7F9A5C77ADC4A592FF" unitRef="usd">39000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases>
	<us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-08440CB0CEBFCE818AD5FA5BD46B453E" unitRef="usd">1299000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases>
	<us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-21594F15B9C427B3A5D0FA5BD46B04F0" unitRef="usd">1401000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
	<us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ManateeWorksInc.Member" decimals="-3" id="Fact-DC98E0A234C9C0AE261AFA5BD468C2E1" unitRef="usd">525000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
	<us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue contextRef="FI2016Q4" decimals="-3" id="Fact-98292FE5BA5B2D753DEBFA5BD46D0315" unitRef="usd">4173000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
	<us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue contextRef="FI2017Q4" decimals="-3" id="Fact-01EB8FAA564B69CC1143FA5BD46C30CC" unitRef="usd">3557000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
	<us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue contextRef="FI2018Q4" decimals="-3" id="Fact-B86F985933228501949FFA5BD46A158C" unitRef="usd">2554000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
	<us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" id="Fact-2D7E89D5EA96299BAA17FA5BD4432F0C">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
	<us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" id="Fact-8A75A1B195286646E7EDFA5BD4AEEBB9">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
	<us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" id="Fact-FDEADF692B3DAA0E489AFA5BD4AB10F8">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
	<us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" id="Fact-0AFAFF52B0073CCE2DBBFA5BD44428B1">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
	<us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" id="Fact-C9AF224E6EE0FC3071B0FA5BD445417E">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
	<us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" id="Fact-6C4AC2B8548D2820ED03FA5BD447ECC4">P11Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
	<us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="FD2018Q4YTD_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" id="Fact-B49C86AD16FDB45F7467FA5BD4ADE88D">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2017Q4" decimals="-3" id="Fact-3F68E8D8BBE3E16627A5FA5BD4D05BF9" unitRef="usd">47535000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" decimals="-3" id="Fact-EB1F183A6F767C8D794FFA5BD4D95E9F" unitRef="usd">5202000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" decimals="-3" id="Fact-E452FD7E08F38E0D75A3FA5BD4903EC2" unitRef="usd">4181000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" decimals="-3" id="Fact-B445CBD7DD801B3C3257FA5BD4D7FAB9" unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember" decimals="-3" id="Fact-1651B3CE59FE03C3A24C77C6E10192EF" unitRef="usd">92000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2018Q4" decimals="-3" id="Fact-C7337998A885EE0F21E4FA5BD4D5F0BB" unitRef="usd">50611000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" decimals="-3" id="Fact-8BD0BD73AD6D33E24282FA5BD4F14530" unitRef="usd">5716000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" decimals="-3" id="Fact-FB7F512860ADD0C29C54FA5BD4AD0456" unitRef="usd">6619000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" decimals="-3" id="Fact-6BA44E18C181F0A1D2C9FA5BD4D5B859" unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" decimals="-3" id="Fact-ED94907792EB13C600FDFA5BD49C1AD6" unitRef="usd">216000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
	<us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive contextRef="FI2018Q4" decimals="-3" id="Fact-FC6E7E29E5AB66559DA7FA5BD47B6796" unitRef="usd">530000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
	<us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths contextRef="FI2018Q4" decimals="-3" id="Fact-63C2FDB6D911EF195B7EFA5BD463CC7C" unitRef="usd">2701000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
	<us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive contextRef="FI2018Q4" decimals="-3" id="Fact-F66E4914BF1772E38EA4FA5BD461E408" unitRef="usd">989000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
	<us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour contextRef="FI2018Q4" decimals="-3" id="Fact-6322358C5284075CEF05FA5BD45C07C4" unitRef="usd">1691000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
	<us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree contextRef="FI2018Q4" decimals="-3" id="Fact-4C9455371816C790E97BFA5BD46A4A88" unitRef="usd">2017000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
	<us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo contextRef="FI2018Q4" decimals="-3" id="Fact-820EA29F5459CFE9744CFA5BD4842D1A" unitRef="usd">2185000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2017Q4" decimals="-3" id="Fact-AE024A0241366F539B07FA5BD4D70172" unitRef="usd">60724000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" decimals="-3" id="Fact-9D63B677B8A9EB851205FA5BD4D649E0" unitRef="usd">8607000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" decimals="-3" id="Fact-98D12548E468FF2A4CA5FA5BD4E31F41" unitRef="usd">13687000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" decimals="-3" id="Fact-B1679607AFE1E2DA64C0FA5BD4D9F070" unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember" decimals="-3" id="Fact-A388EB8E6AE206DE23AC77C6E0F4F278" unitRef="usd">370000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2018Q4" decimals="-3" id="Fact-336D9741FAF0CC32B370FA5BD4D9EB58" unitRef="usd">60724000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" decimals="-3" id="Fact-12DF51C07FB7CCE0F8C8FA5BD4ADB252" unitRef="usd">8607000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" decimals="-3" id="Fact-CD0608C0BDD6FC874A65FA5BD4A6358D" unitRef="usd">13687000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" decimals="-3" id="Fact-F665D95D650C3D22C192FA5BD4D6D39F" unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsGross contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" decimals="-3" id="Fact-50E208E3053D3B5FF1CDFA5BD4CF2C1F" unitRef="usd">370000</us-gaap:FiniteLivedIntangibleAssetsGross>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2017Q4" decimals="-3" id="Fact-8B1AB21854BB9E470C23FA5BD4FB7B6A" unitRef="usd">13189000</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" decimals="-3" id="Fact-70DAE385C99D03D550CBFA5BD4DA1199" unitRef="usd">3405000</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" decimals="-3" id="Fact-5D4FB37F985EA49D6D03FA5BD4AB2022" unitRef="usd">9506000</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" decimals="-3" id="Fact-6A5B31D1DDF5A7A22BC9FA5BD4ACA8E6" unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember" decimals="-3" id="Fact-41381BDF1D6D36A358EC77C6E0FA920B" unitRef="usd">278000</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2018Q4" decimals="-3" id="Fact-4C226550D44D4D648CDAFA5BD4F60D33" unitRef="usd">10113000</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" decimals="-3" id="Fact-0A13C4FEC36CCBC25C44FA5BD4D65864" unitRef="usd">2891000</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" decimals="-3" id="Fact-009FC8C1510E7F7B72C1FA5BD4DA08D1" unitRef="usd">7068000</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" decimals="-3" id="Fact-5200CA733DA02998EC88FA5BD4D68D00" unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:FiniteLivedIntangibleAssetsNet contextRef="FI2018Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" decimals="-3" id="Fact-2DA792DCAB0C55BB7754FA5BD4D83995" unitRef="usd">154000</us-gaap:FiniteLivedIntangibleAssetsNet>
	<us-gaap:ForeignCurrencyContractAssetFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" id="Fact-1808A321831E475C0F4BFA5BD4F06174" unitRef="usd" xsi:nil="true" />
	<us-gaap:ForeignCurrencyContractAssetFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-01AEC86CF9A6E65DDD16FA5BD4F07F8B" unitRef="usd">1000</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
	<us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-3B5D36F53997AF197221FA5BD4F7366A" unitRef="usd">0</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
	<us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure contextRef="FI2018Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="-3" id="Fact-62FB90484346491BB31EFA5BD4F8AD89" unitRef="usd">106000</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
	<us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-FC6A67AECECF49C817F0FA5BD45F610A" unitRef="usd">101000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
	<us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-663C3428A5FB9622A655FA5BD4499DEC" unitRef="usd">-1601000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
	<us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-DE616AD46C7809589579FA5BD44C7162" unitRef="usd">-1064000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
	<us-gaap:GainLossOnSaleOfBusiness contextRef="FD2016Q4YTD" decimals="-3" id="Fact-844DBEF5E836E2C0FF04FA5BD46C9852" unitRef="usd">-255000</us-gaap:GainLossOnSaleOfBusiness>
	<us-gaap:GainLossOnSaleOfBusiness contextRef="FD2017Q4YTD" decimals="-3" id="Fact-DB4BFFD7B7E3F80BD3EBFA5BD46E35C1" unitRef="usd">0</us-gaap:GainLossOnSaleOfBusiness>
	<us-gaap:GainLossOnSaleOfBusiness contextRef="FD2018Q4YTD" decimals="-3" id="Fact-5F526469309B8A219A21FA5BD44B3BCE" unitRef="usd">0</us-gaap:GainLossOnSaleOfBusiness>
	<us-gaap:GainLossOnSaleOfInvestments contextRef="FD2016Q4YTD" decimals="-3" id="Fact-6D7595ED3AADFC1141E1FA5BD4642C8A" unitRef="usd">1506000</us-gaap:GainLossOnSaleOfInvestments>
	<us-gaap:GainLossOnSaleOfInvestments contextRef="FD2017Q4YTD" decimals="-3" id="Fact-6F0F77B8F093F2B8A8FAFA5BD465B045" unitRef="usd">829000</us-gaap:GainLossOnSaleOfInvestments>
	<us-gaap:GainLossOnSaleOfInvestments contextRef="FD2018Q4YTD" decimals="-3" id="Fact-2C531DBDB4A61DA3DF76FA5BD44A609C" unitRef="usd">501000</us-gaap:GainLossOnSaleOfInvestments>
	<us-gaap:Goodwill contextRef="FI2016Q4" decimals="-3" id="Fact-B7AD8D0A4ACF5317BFEDFA5BD510BA35" unitRef="usd">95280000</us-gaap:Goodwill>
	<us-gaap:Goodwill contextRef="FI2017Q4" decimals="-3" id="Fact-721494CC753F7DB85ADDFA5BD4F85E20" unitRef="usd">113208000</us-gaap:Goodwill>
	<us-gaap:Goodwill contextRef="FI2018Q4" decimals="-3" id="Fact-D52FA6BDBF22506B1A0EFA5BD4F99300" unitRef="usd">113208000</us-gaap:Goodwill>
	<us-gaap:Goodwill contextRef="I2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member" decimals="-3" id="Fact-3E90D23DB67FE8D1F100FA5BD4E1FBE1" unitRef="usd">1383000</us-gaap:Goodwill>
	<us-gaap:Goodwill contextRef="I2016Q3Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-79E725462FDE3527E24CFA5BD4ECD42F" unitRef="usd">6732000</us-gaap:Goodwill>
	<us-gaap:Goodwill contextRef="I2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="-3" id="Fact-D39426F075E08F6C2695FA5BD4E59F53" unitRef="usd">925000</us-gaap:Goodwill>
	<us-gaap:Goodwill contextRef="I2016Q4Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-ADDD78437C7DC7C19FEFFA5BD4E96723" unitRef="usd">2911000</us-gaap:Goodwill>
	<us-gaap:Goodwill contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-5B3AE66AC63765D3C97DFA5BD4EEBA95" unitRef="usd">18333000</us-gaap:Goodwill>
	<us-gaap:Goodwill contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-B3B830C729A7AB1F39DCFA5BD48FE3EF" unitRef="usd">1476000</us-gaap:Goodwill>
	<us-gaap:GoodwillAcquiredDuringPeriod contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-A5F283E24B8EED5B9590FA5BD510E06E" unitRef="usd">1476000</us-gaap:GoodwillAcquiredDuringPeriod>
	<us-gaap:GoodwillAcquiredDuringPeriod contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-9F95ED13D6DF49F2F21EFA5BD5108E6A" unitRef="usd">18333000</us-gaap:GoodwillAcquiredDuringPeriod>
	<us-gaap:GoodwillAndIntangibleAssetImpairment contextRef="FD2017Q4YTD" decimals="0" id="Fact-EEBEB63501535ED8238FA109F1D59B9B" unitRef="usd">469000</us-gaap:GoodwillAndIntangibleAssetImpairment>
	<us-gaap:GoodwillPeriodIncreaseDecrease contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-5FC522325FA579B51FCCFA5BD4422C36" unitRef="usd">-1881000</us-gaap:GoodwillPeriodIncreaseDecrease>
	<us-gaap:GrossProfit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-B02FF0098D57846B87F1FA5BD44AD55C" unitRef="usd">398445000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-41AC4E220793428ACA49962A5FE21FCD" unitRef="usd">-6718000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-C05AC376AFB19249258A962A5D9E7FB6" unitRef="usd">405163000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2017Q1QTD" decimals="-3" id="Fact-DC95823EC94BF19FD2C1E7777CF0D400" unitRef="usd">106507000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2017Q2QTD" decimals="-3" id="Fact-45750F1283ADEA5235F6E7777F7AB2BF" unitRef="usd">135916000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2017Q3QTD" decimals="-3" id="Fact-6980D12A86D3556AF920E77782159297" unitRef="usd">197981000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2017Q4QTD" decimals="-3" id="Fact-86007571C836DB9091B7E77784EF4148" unitRef="usd">138390000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-356196EDFF00FFB82BE5FA5BD45C4CD0" unitRef="usd">578794000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-1A539AD55F0227DF5FE996175E5B9158" unitRef="usd">-458000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-5ED7C7E1B2654C74DC96961743784D15" unitRef="usd">579252000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2018Q1QTD" decimals="-3" id="Fact-A7DEC4B9655959D7E86FE775BB536DF4" unitRef="usd">129369000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2018Q2QTD" decimals="-3" id="Fact-8FD2DA55E367E856F065E775BB70CF53" unitRef="usd">157095000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2018Q3QTD" decimals="-3" id="Fact-E7F9D34618935266B439E775BB434295" unitRef="usd">173361000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2018Q4QTD" decimals="-3" id="Fact-8478014400B25AD32644E775BB35E3D8" unitRef="usd">140461000</us-gaap:GrossProfit>
	<us-gaap:GrossProfit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-2168474DBF442887DA4DFA5BD44D9A3B" unitRef="usd">600286000</us-gaap:GrossProfit>
	<us-gaap:IncomeLossFromContinuingOperations contextRef="FD2016Q4YTD" decimals="-3" id="Fact-C2A08531F2A86670B130FA5BD44D4F9D" unitRef="usd">143949000</us-gaap:IncomeLossFromContinuingOperations>
	<us-gaap:IncomeLossFromContinuingOperations contextRef="FD2017Q4YTD" decimals="-3" id="Fact-71A290751DF97240FA00FA5BD4499950" unitRef="usd">176712000</us-gaap:IncomeLossFromContinuingOperations>
	<us-gaap:IncomeLossFromContinuingOperations contextRef="FD2018Q4YTD" decimals="-3" id="Fact-5A27A19B446C72A80056FA5BD519D29A" unitRef="usd">219267000</us-gaap:IncomeLossFromContinuingOperations>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="FD2016Q4YTD" decimals="0" id="Fact-F13F26D58F3B0BC1E4FEFA5BD48AC40B" unitRef="usd">23939000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="FD2017Q4YTD" decimals="0" id="Fact-C67E260E2858A658A1DFFA5BD480DF1B" unitRef="usd">30345000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="FD2018Q4YTD" decimals="0" id="Fact-650470AD8AC9F4B67B4EFA5BD47DD0E6" unitRef="usd">39042000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="FD2016Q4YTD" decimals="0" id="Fact-7129E0BDC3F30CE19FD2FA5BD48DA3D8" unitRef="usd">138138000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="FD2017Q4YTD" decimals="0" id="Fact-2622E0AA50F550E2D2E5FA5BD4CBA1EC" unitRef="usd">236119000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="FD2018Q4YTD" decimals="0" id="Fact-497C9626ABD779B0331CFA5BD4BE828E" unitRef="usd">195532000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="FD2016Q4YTD" decimals="-3" id="Fact-6F7C6BF3B4294F063BFFFA5BD445E3D7" unitRef="usd">162077000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-9A17151CC085AE515C2D962A6CEF12B9" unitRef="usd">-6718000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-083A2CE358B8C858B41C962A6ADBB1AA" unitRef="usd">168795000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="FD2017Q4YTD" decimals="-3" id="Fact-7A6B37F7CEAA203AD8B3FA5BD44527D9" unitRef="usd">266464000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-7FF66ADC34FA6C757E81961B97D0AC6F" unitRef="usd">-458000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-B9F633F7532662D3A5C3961BB073EDAF" unitRef="usd">266922000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
	<us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="FD2018Q4YTD" decimals="-3" id="Fact-020891CBFBA95683C586FA5BD50A386D" unitRef="usd">234574000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
	<us-gaap:IncomeLossFromContinuingOperationsPerBasicShare contextRef="FD2016Q4YTD" decimals="2" id="Fact-B3DFE891D432432001C5FA5BD44B64FE" unitRef="usdPerShare">0.84</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
	<us-gaap:IncomeLossFromContinuingOperationsPerBasicShare contextRef="FD2017Q4YTD" decimals="2" id="Fact-3B93585E1B3C8ABA08BBFA5BD4483B86" unitRef="usdPerShare">1.02</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
	<us-gaap:IncomeLossFromContinuingOperationsPerBasicShare contextRef="FD2018Q4YTD" decimals="2" id="Fact-A546511C6FCEAB7649EEFA5BD44DBFD6" unitRef="usdPerShare">1.27</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
	<us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare contextRef="FD2016Q4YTD" decimals="2" id="Fact-86A94D0AAE5317DCFFF0FA5BD4430C27" unitRef="usdPerShare">0.83</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
	<us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare contextRef="FD2017Q4YTD" decimals="2" id="Fact-81D9D500246A93C2AB65FA5BD441143C" unitRef="usdPerShare">0.98</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
	<us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare contextRef="FD2018Q4YTD" decimals="2" id="Fact-0454E7C750C3AB214F87FA5BD443AF77" unitRef="usdPerShare">1.24</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity contextRef="FD2016Q4YTD" decimals="-3" id="Fact-8CD3221A4308B822DD1CFA5BD444006A" unitRef="usd">-255000</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity contextRef="FD2016Q4YTD_srt_LitigationCaseAxis_cgnx_AMETEKMatterMember_us-gaap_DisposalGroupClassificationAxis_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_cgnx_SisdMember_us-gaap_LitigationStatusAxis_us-gaap_SettledLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GuaranteeObligationsMember" decimals="0" id="Fact-E995F661BE6D31E6C98EFA5BD4B7F8D1" unitRef="usd">-255000</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity contextRef="FD2017Q4YTD" decimals="-3" id="Fact-970A05F22971871641E4FA5BD444927A" unitRef="usd">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity contextRef="FD2018Q4YTD" decimals="-3" id="Fact-9EC28727C23CBCC58870FA5BD509640B" unitRef="usd">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare contextRef="FD2016Q4YTD" decimals="2" id="Fact-D4D8A3C212B9301E56A6FA5BD4475C04" unitRef="usdPerShare">0.00</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare contextRef="FD2017Q4YTD" decimals="2" id="Fact-A638EC8499F2165D53DAFA5BD4467702" unitRef="usdPerShare">0.00</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare contextRef="FD2018Q4YTD" decimals="2" id="Fact-CC9F3D0388167B0DB0FAFA5BD4587138" unitRef="usdPerShare">0.00</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare contextRef="FD2016Q4YTD" decimals="2" id="Fact-852ADF3721EF0AA4A3A9FA5BD4496855" unitRef="usdPerShare">0.00</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare contextRef="FD2017Q4YTD" decimals="2" id="Fact-8A2667080C3C20AE1031FA5BD447D9D3" unitRef="usdPerShare">0.00</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
	<us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare contextRef="FD2018Q4YTD" decimals="2" id="Fact-21F240B9D0DD374E64C1FA5BD517CA3D" unitRef="usdPerShare">0.00</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
	<us-gaap:IncomeTaxExpenseBenefit contextRef="FD2016Q4YTD" decimals="-3" id="Fact-5731392D654843B7A4B1FA5BD516D5AD" unitRef="usd">18128000</us-gaap:IncomeTaxExpenseBenefit>
	<us-gaap:IncomeTaxExpenseBenefit contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-DE93BCF3385FCC6F5163962A727C7E3C" unitRef="usd">-840000</us-gaap:IncomeTaxExpenseBenefit>
	<us-gaap:IncomeTaxExpenseBenefit contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-F485F5F31F0197864EDA962A708D6DC6" unitRef="usd">18968000</us-gaap:IncomeTaxExpenseBenefit>
	<us-gaap:IncomeTaxExpenseBenefit contextRef="FD2017Q4YTD" decimals="-3" id="Fact-A552F91E39A9614A7977FA5BD45AB438" unitRef="usd">89752000</us-gaap:IncomeTaxExpenseBenefit>
	<us-gaap:IncomeTaxExpenseBenefit contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-7953B6CAC811843C3859961C25F007CE" unitRef="usd">8000</us-gaap:IncomeTaxExpenseBenefit>
	<us-gaap:IncomeTaxExpenseBenefit contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-B3C641CF02CCE8F429A4961C38287E0D" unitRef="usd">89744000</us-gaap:IncomeTaxExpenseBenefit>
	<us-gaap:IncomeTaxExpenseBenefit contextRef="FD2018Q4YTD" decimals="-3" id="Fact-5DAF9DD6679BDF757344FA5BD44A8006" unitRef="usd">15307000</us-gaap:IncomeTaxExpenseBenefit>
	<us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate contextRef="FD2017Q4YTD" decimals="0" id="Fact-DC2F2EC6470D47447A257B6064957C1B" unitRef="usd">3843000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
	<us-gaap:IncomeTaxesPaidNet contextRef="FD2016Q4YTD" decimals="0" id="Fact-D342390C9278BB4C6D52FA5BD4817C0F" unitRef="usd">20748000</us-gaap:IncomeTaxesPaidNet>
	<us-gaap:IncomeTaxesPaidNet contextRef="FD2017Q4YTD" decimals="0" id="Fact-A13D080A826658B84EBCFA5BD4C7AC3A" unitRef="usd">11802000</us-gaap:IncomeTaxesPaidNet>
	<us-gaap:IncomeTaxesPaidNet contextRef="FD2018Q4YTD" decimals="0" id="Fact-52FF627E026D51A3F828FA5BD4806688" unitRef="usd">41430000</us-gaap:IncomeTaxesPaidNet>
	<us-gaap:IncreaseDecreaseInAccountsPayable contextRef="FD2016Q4YTD" decimals="-3" id="Fact-7859AE6D261C09C3CCDEFA5BD478E882" unitRef="usd">2087000</us-gaap:IncreaseDecreaseInAccountsPayable>
	<us-gaap:IncreaseDecreaseInAccountsPayable contextRef="FD2017Q4YTD" decimals="-3" id="Fact-11AB9929E5E209AFBE6DFA5BD4784E21" unitRef="usd">12322000</us-gaap:IncreaseDecreaseInAccountsPayable>
	<us-gaap:IncreaseDecreaseInAccountsPayable contextRef="FD2018Q4YTD" decimals="-3" id="Fact-956E9D653F0CAD9C1414FA5BD447263E" unitRef="usd">-7247000</us-gaap:IncreaseDecreaseInAccountsPayable>
	<us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="FD2016Q4YTD" decimals="-3" id="Fact-6EF2C782D209598EB0B5FA5BD4491CD7" unitRef="usd">13251000</us-gaap:IncreaseDecreaseInAccountsReceivable>
	<us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="FD2017Q4YTD" decimals="-3" id="Fact-F21BC09B2FE166B9CF4CFA5BD46BFA1E" unitRef="usd">55185000</us-gaap:IncreaseDecreaseInAccountsReceivable>
	<us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="FD2018Q4YTD" decimals="-3" id="Fact-489BA3043E96E9A213B3FA5BD45C7B3D" unitRef="usd">1867000</us-gaap:IncreaseDecreaseInAccountsReceivable>
	<us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable contextRef="FD2016Q4YTD" decimals="-3" id="Fact-CCA303046537BC53A7DEFA5BD46BAC94" unitRef="usd">1270000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
	<us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable contextRef="FD2017Q4YTD" decimals="-3" id="Fact-AF692450B6AD92513B05FA5BD44A801A" unitRef="usd">71335000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
	<us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable contextRef="FD2018Q4YTD" decimals="-3" id="Fact-418C6D702EF57EA895ABFA5BD44EC0E2" unitRef="usd">-21903000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
	<us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="FD2016Q4YTD" decimals="-3" id="Fact-D3F88C87FB7E05991CBDFA5BD45FA220" unitRef="usd">7771000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
	<us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="FD2017Q4YTD" decimals="-3" id="Fact-18465951B409C1CF71D5FA5BD463902F" unitRef="usd">14476000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
	<us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="FD2018Q4YTD" decimals="-3" id="Fact-72A726CC9E627BF255A7FA5BD461B7D7" unitRef="usd">380000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
	<us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="FD2017Q4YTD" decimals="-3" id="Fact-0762ABDD4A2E1A70A935964F4C9CE398" unitRef="usd">24985000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
	<us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="FD2018Q4YTD" decimals="-3" id="Fact-6D58F0C10E1D5E528B0D964F4C9CA685" unitRef="usd">63231000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
	<us-gaap:IncreaseDecreaseInDeferredIncomeTaxes contextRef="FD2016Q4YTD" decimals="-3" id="Fact-5D546E5BCE7BB3544D59FA5BD470C424" unitRef="usd">1908000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
	<us-gaap:IncreaseDecreaseInDeferredIncomeTaxes contextRef="FD2017Q4YTD" decimals="-3" id="Fact-E2BED1B5FAF00BACCCD4FA5BD44E1330" unitRef="usd">-1787000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
	<us-gaap:IncreaseDecreaseInDeferredIncomeTaxes contextRef="FD2018Q4YTD" decimals="-3" id="Fact-9895CB7F3FB7A7745CB9FA5BD4585CB7" unitRef="usd">413000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
	<us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits contextRef="FD2016Q4YTD" decimals="-3" id="Fact-6D344F621A0870E9044FFA5BD44F182C" unitRef="usd">3622000</us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits>
	<us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits contextRef="FD2017Q4YTD" decimals="-3" id="Fact-184F62C91014ACC94BFCFA5BD4458462" unitRef="usd">1619000</us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits>
	<us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits contextRef="FD2018Q4YTD" decimals="-3" id="Fact-87C12608EF6EF2D3177CFA5BD448EF85" unitRef="usd">1434000</us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits>
	<us-gaap:IncreaseDecreaseInInventories contextRef="FD2016Q4YTD" decimals="-3" id="Fact-FC0332B58B18199D0CBFFA5BD458BBE0" unitRef="usd">-10409000</us-gaap:IncreaseDecreaseInInventories>
	<us-gaap:IncreaseDecreaseInInventories contextRef="FD2017Q4YTD" decimals="-3" id="Fact-7DE6DE1054E5E15B8D26FA5BD446AC2D" unitRef="usd">37088000</us-gaap:IncreaseDecreaseInInventories>
	<us-gaap:IncreaseDecreaseInInventories contextRef="FD2018Q4YTD" decimals="-3" id="Fact-FBF381C13EE807633945FA5BD462EE11" unitRef="usd">16946000</us-gaap:IncreaseDecreaseInInventories>
	<us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet contextRef="FD2016Q4YTD" decimals="-3" id="Fact-ECF0252C5776B678AF5DFA5BD441F4A8" unitRef="usd">-1820000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
	<us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet contextRef="FD2017Q4YTD" decimals="-3" id="Fact-3D2FF7D0E130C541CFCDFA5BD449264F" unitRef="usd">-1215000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
	<us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet contextRef="FD2018Q4YTD" decimals="-3" id="Fact-49E02C510944BA2C84C0FA5BD469A1D5" unitRef="usd">838000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
	<us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="FD2016Q4YTD" decimals="-3" id="Fact-6F79B35D9EEB41EA250C965548F2B5E5" unitRef="usd">5421000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
	<us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="FD2017Q4YTD" decimals="-3" id="Fact-63F756D563594417E83B965548F23587" unitRef="usd">7016000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
	<us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="FD2018Q4YTD" decimals="-3" id="Fact-E8FC43F4FFBCD260AEF5965548E358C2" unitRef="usd">9750000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
	<us-gaap:IncreaseDecreaseInUnbilledReceivables contextRef="FD2016Q4YTD" decimals="-3" id="Fact-D07165AD8BBE3C785DEDFA5BD479CABD" unitRef="usd">2308000</us-gaap:IncreaseDecreaseInUnbilledReceivables>
	<us-gaap:IncreaseDecreaseInUnbilledReceivables contextRef="FD2017Q4YTD" decimals="-3" id="Fact-19017B3B3FB0CD5D55D7FA5BD45EA26E" unitRef="usd">4604000</us-gaap:IncreaseDecreaseInUnbilledReceivables>
	<us-gaap:IncreaseDecreaseInUnbilledReceivables contextRef="FD2018Q4YTD" decimals="-3" id="Fact-B6E454A39D39EBC0879BFA5BD4768F0C" unitRef="usd">906000</us-gaap:IncreaseDecreaseInUnbilledReceivables>
	<us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="FI2017Q4" decimals="-3" id="Fact-E27BA0AB04DA7FF46EB3FA5BD4A335E3" unitRef="usd">31882000</us-gaap:InventoryFinishedGoodsNetOfReserves>
	<us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="FI2018Q4" decimals="-3" id="Fact-D4807DFC2E0EAEABDA1AFA5BD4A48FC8" unitRef="usd">37109000</us-gaap:InventoryFinishedGoodsNetOfReserves>
	<us-gaap:InventoryNet contextRef="FI2017Q4" decimals="-3" id="Fact-FCB810E20934310AC221FA5BD4F9A1E6" unitRef="usd">67923000</us-gaap:InventoryNet>
	<us-gaap:InventoryNet contextRef="FI2018Q4" decimals="-3" id="Fact-9C138594A48D0B74BC34FA5BD50440CE" unitRef="usd">83282000</us-gaap:InventoryNet>
	<us-gaap:InventoryRawMaterialsNetOfReserves contextRef="FI2017Q4" decimals="-3" id="Fact-7554994BE1B8F3337822FA5BD4A13049" unitRef="usd">33927000</us-gaap:InventoryRawMaterialsNetOfReserves>
	<us-gaap:InventoryRawMaterialsNetOfReserves contextRef="FI2018Q4" decimals="-3" id="Fact-1A5890A51AD2BD7D0ECBFA5BD4A69171" unitRef="usd">42738000</us-gaap:InventoryRawMaterialsNetOfReserves>
	<us-gaap:InventoryWorkInProcessNetOfReserves contextRef="FI2017Q4" decimals="-3" id="Fact-965AA5E3246FD71C335CFA5BD4A5B9FD" unitRef="usd">2114000</us-gaap:InventoryWorkInProcessNetOfReserves>
	<us-gaap:InventoryWorkInProcessNetOfReserves contextRef="FI2018Q4" decimals="-3" id="Fact-15DABB8C2C4D420EFA88FA5BD4A33935" unitRef="usd">3435000</us-gaap:InventoryWorkInProcessNetOfReserves>
	<us-gaap:InvestmentIncomeNonoperating contextRef="FD2016Q4YTD" decimals="-3" id="Fact-2358C5BE4717BD9753EEFA5BD4485855" unitRef="usd">7039000</us-gaap:InvestmentIncomeNonoperating>
	<us-gaap:InvestmentIncomeNonoperating contextRef="FD2017Q4YTD" decimals="-3" id="Fact-60231A774C66487037E1FA5BD4415F62" unitRef="usd">9542000</us-gaap:InvestmentIncomeNonoperating>
	<us-gaap:InvestmentIncomeNonoperating contextRef="FD2018Q4YTD" decimals="-3" id="Fact-C941C9577C492A2B008CFA5BD442D218" unitRef="usd">14715000</us-gaap:InvestmentIncomeNonoperating>
	<us-gaap:LegalFees contextRef="FD2016Q4YTD_srt_LitigationCaseAxis_cgnx_AMETEKMatterMember_us-gaap_DisposalGroupClassificationAxis_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_cgnx_SisdMember_us-gaap_LitigationStatusAxis_us-gaap_SettledLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GuaranteeObligationsMember" decimals="0" id="Fact-F1662927484E832A0B5AFA5BD4B5851C" unitRef="usd">123000</us-gaap:LegalFees>
	<us-gaap:Liabilities contextRef="FI2017Q4" decimals="-3" id="Fact-6E792447BEF651439A0FFA5BD502DBE8" unitRef="usd">192080000</us-gaap:Liabilities>
	<us-gaap:Liabilities contextRef="FI2018Q4" decimals="-3" id="Fact-BC4DEE0358B77281BF24FA5BD4FD7326" unitRef="usd">154404000</us-gaap:Liabilities>
	<us-gaap:LiabilitiesAndStockholdersEquity contextRef="FI2017Q4" decimals="-3" id="Fact-13B4B85E1A3BDB0AD23FFA5BD45EFB9F" unitRef="usd">1287753000</us-gaap:LiabilitiesAndStockholdersEquity>
	<us-gaap:LiabilitiesAndStockholdersEquity contextRef="FI2018Q4" decimals="-3" id="Fact-345AC000EEAF4D074E7EFA5BD4FE348D" unitRef="usd">1289667000</us-gaap:LiabilitiesAndStockholdersEquity>
	<us-gaap:LiabilitiesCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-C60CA1A4B4AC2E94769EFA5BD4EF3DC1" unitRef="usd">112635000</us-gaap:LiabilitiesCurrent>
	<us-gaap:LiabilitiesCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-6998B699A8FB1982FD61FA5BD4F0AFE6" unitRef="usd">91357000</us-gaap:LiabilitiesCurrent>
	<us-gaap:LiabilitiesFairValueAdjustment contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-1C3B8777C81C12C69962779D814B4175" unitRef="usd">15000</us-gaap:LiabilitiesFairValueAdjustment>
	<us-gaap:LiabilitiesFairValueAdjustment contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-B461B4423868AD93963F779DF98C39FF" unitRef="usd">282000</us-gaap:LiabilitiesFairValueAdjustment>
	<us-gaap:LiabilitiesFairValueAdjustment contextRef="FD2017Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ManateeWorksInc.Member" decimals="-3" id="Fact-42EDDD6BCBAB609DE4EAFA5BD46706C5" unitRef="usd">-325000</us-gaap:LiabilitiesFairValueAdjustment>
	<us-gaap:LiabilitiesFairValueAdjustment contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-F2BBAFB4773EA958C9F1FA5BD4682506" unitRef="usd">282000</us-gaap:LiabilitiesFairValueAdjustment>
	<us-gaap:LiabilitiesFairValueAdjustment contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-2F4677E90298A1F4872BFA5BD46C6E6A" unitRef="usd">1065000</us-gaap:LiabilitiesFairValueAdjustment>
	<us-gaap:LiabilitiesFairValueAdjustment contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ManateeWorksInc.Member" decimals="-3" id="Fact-5E631DDD2C85418A4997FA5BD469C073" unitRef="usd">-1350000</us-gaap:LiabilitiesFairValueAdjustment>
	<us-gaap:LiabilityForUncertainTaxPositionsNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-E024D2BADD7B8901DF51FA5BD4F734F6" unitRef="usd">6488000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
	<us-gaap:LiabilityForUncertainTaxPositionsNoncurrent contextRef="FI2017Q4" decimals="0" id="Fact-734852362118FE26A137FA5BD46C21F2" unitRef="usd">6488000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
	<us-gaap:LiabilityForUncertainTaxPositionsNoncurrent contextRef="FI2018Q4" decimals="0" id="Fact-B600625FB136A4B3DE2EFA5BD47BF62A" unitRef="usd">7106000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
	<us-gaap:LiabilityForUncertainTaxPositionsNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-C6CF1D248CB4B061E0FFFA5BD4FAA0AE" unitRef="usd">7106000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
	<us-gaap:LitigationSettlementExpense contextRef="FD2016Q4YTD_srt_LitigationCaseAxis_cgnx_AMETEKMatterMember_us-gaap_DisposalGroupClassificationAxis_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_cgnx_SisdMember_us-gaap_LitigationStatusAxis_us-gaap_SettledLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GuaranteeObligationsMember" decimals="0" id="Fact-5DBCA8DCF5677E364B3977CD01CE0B94" unitRef="usd">281000</us-gaap:LitigationSettlementExpense>
	<us-gaap:LongTermInvestments contextRef="FI2017Q4" decimals="-3" id="Fact-3B6BFB43066B1C872D0EFA5BD4FD68BF" unitRef="usd">423441000</us-gaap:LongTermInvestments>
	<us-gaap:LongTermInvestments contextRef="FI2018Q4" decimals="-3" id="Fact-F0EF2B22436002C643E8FA5BD504FD72" unitRef="usd">262039000</us-gaap:LongTermInvestments>
	<us-gaap:MaximumLengthOfTimeHedgedInCashFlowHedge1 contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember" id="Fact-8DF3E37E5BA589935155FA5BD507F4EF">P18M</us-gaap:MaximumLengthOfTimeHedgedInCashFlowHedge1>
	<us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1 contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" id="Fact-F676B89A22DADF394173FA5BD50606F1">P45D</us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1>
	<us-gaap:MoneyMarketFundsAtCarryingValue contextRef="FI2017Q4" decimals="-3" id="Fact-FF9723B8D974236D9AE5FA5BD4A4AA67" unitRef="usd">8631000</us-gaap:MoneyMarketFundsAtCarryingValue>
	<us-gaap:MoneyMarketFundsAtCarryingValue contextRef="FI2018Q4" decimals="-3" id="Fact-339350078DEE3778D974FA5BD4A4D01C" unitRef="usd">3557000</us-gaap:MoneyMarketFundsAtCarryingValue>
	<us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="FD2016Q4YTD" decimals="-3" id="Fact-65568E4C916A0BB4103AFA5BD45A578C" unitRef="usd">-29231000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
	<us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="FD2016Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" decimals="0" id="Fact-764DA78C9C02EFB7D7A5FA5BD4DDA0AD" unitRef="usd">-7871000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
	<us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="FD2017Q4YTD" decimals="-3" id="Fact-F5190840285150BF498EFA5BD4594AA2" unitRef="usd">-100121000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
	<us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="FD2017Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" decimals="0" id="Fact-3B8B56818532719207AFFA5BD4E1BE04" unitRef="usd">-9964000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
	<us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="FD2018Q4YTD" decimals="-3" id="Fact-DD39F61D696A34AA9E00FA5BD478231F" unitRef="usd">-209904000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
	<us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="FD2016Q4YTD" decimals="-3" id="Fact-B41537E9E48511161628FA5BD447E781" unitRef="usd">-121832000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
	<us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="FD2017Q4YTD" decimals="-3" id="Fact-A1732493E3E09252B834FA5BD45F37EE" unitRef="usd">-105555000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
	<us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="FD2018Q4YTD" decimals="-3" id="Fact-B68C5773799E292B3788FA5BD45BA70C" unitRef="usd">-10827000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
	<us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="FD2016Q4YTD" decimals="-3" id="Fact-1F120BABC482CBDA7E3DFA5BD451101A" unitRef="usd">182081000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
	<us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="FD2017Q4YTD" decimals="-3" id="Fact-9599895A37060CF28611FA5BD47777DF" unitRef="usd">224323000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
	<us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="FD2018Q4YTD" decimals="-3" id="Fact-6FB5518BD82BE9EA2323FA5BD44DC4E0" unitRef="usd">223454000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
	<us-gaap:NetIncomeLoss contextRef="FD2016Q4YTD" decimals="-3" id="Fact-0EA19FC7F0BF0EDB573EFA5BD5119C5A" unitRef="usd">143694000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-02D8CBD145FD4A9D8B54962A78A8B7A8" unitRef="usd">-5878000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-CCAD58FF8B3F65194702962A76821E26" unitRef="usd">149572000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-7BB461FA964B55A203E4FA5BD4C5E619" unitRef="usd">143694000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2017Q1QTD" decimals="-3" id="Fact-8403E9C6201826443A21E77791F3CBE0" unitRef="usd">45471000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2017Q2QTD" decimals="-3" id="Fact-1F6C0A8C77C59757C8BFE777940B5044" unitRef="usd">56495000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2017Q3QTD" decimals="-3" id="Fact-3332AD6143F9F5064F9BE77795B01401" unitRef="usd">102493000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2017Q4QTD" decimals="-3" id="Fact-C1705F664682F58D81F0E7779756B733" unitRef="usd">-27747000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2017Q4YTD" decimals="-3" id="Fact-52720CA8EFAEF1D9311BFA5BD44AB9F7" unitRef="usd">176712000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-165976809FFA0DECC589961CAE1C6E5F" unitRef="usd">-466000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-C54EEAF7AEC885831387961CB96B6188" unitRef="usd">177178000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-61FC55CE939DE22C81FBFA5BD51BB28F" unitRef="usd">176712000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2018Q1QTD" decimals="-3" id="Fact-C6CC91F63123AF1B4608E7760CFBD175" unitRef="usd">37217000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2018Q2QTD" decimals="-3" id="Fact-516FCA20E6137DCD3484E7760CDBBE94" unitRef="usd">56196000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2018Q3QTD" decimals="-3" id="Fact-1DABAB597938D466027DE7760CC39527" unitRef="usd">80436000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2018Q4QTD" decimals="-3" id="Fact-6359789A5CA882CEE7A0E7760CD4C922" unitRef="usd">45418000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2018Q4YTD" decimals="-3" id="Fact-2F6CBC6D0AD9A0D95840FA5BD4500AC9" unitRef="usd">219267000</us-gaap:NetIncomeLoss>
	<us-gaap:NetIncomeLoss contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-E094E0F4AB4DDC04FC44FA5BD4CD8776" unitRef="usd">219267000</us-gaap:NetIncomeLoss>
	<us-gaap:NoncurrentAssets contextRef="FI2016Q4" decimals="-3" id="Fact-3113436F5B6F35EF74D9FA5BD4C14590" unitRef="usd">56311000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2016Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" decimals="-3" id="Fact-A0F398FDE2F06CDC9CFAFA5BD4836E26" unitRef="usd">994000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2016Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" decimals="-3" id="Fact-2CA221DB005A9D885F27FA5BD4DC3836" unitRef="usd">1932000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2016Q4_srt_StatementGeographicalAxis_country_US" decimals="-3" id="Fact-D92BD6A7F32219387873FA5BD4CD0E1E" unitRef="usd">40404000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2016Q4_srt_StatementGeographicalAxis_srt_EuropeMember" decimals="-3" id="Fact-A8922A941C948CAAA331FA5BD4E724EE" unitRef="usd">12981000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2017Q4" decimals="-3" id="Fact-782E33573F0FCB7BFDCFFA5BD481EB77" unitRef="usd">80539000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2017Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" decimals="-3" id="Fact-E9810DBF44F3867CE1B0FA5BD4C1346A" unitRef="usd">1594000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2017Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" decimals="-3" id="Fact-AA3262B00E897709AA02FA5BD4CBBAB8" unitRef="usd">2525000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2017Q4_srt_StatementGeographicalAxis_country_US" decimals="-3" id="Fact-D5D08923A9A98D1A15A4FA5BD4CE16BF" unitRef="usd">53983000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2017Q4_srt_StatementGeographicalAxis_srt_EuropeMember" decimals="-3" id="Fact-76354C18B39ADA7F398FFA5BD4DC0E5B" unitRef="usd">22437000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2018Q4" decimals="-3" id="Fact-213C234B394F133E0A71FA5BD4DF6984" unitRef="usd">95321000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2018Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" decimals="-3" id="Fact-5123F68B03FCBC6B1EC9FA5BD4D8174A" unitRef="usd">1482000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" decimals="-3" id="Fact-625B990B6AD232ADFB04FA5BD4CA2B64" unitRef="usd">2735000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2018Q4_srt_StatementGeographicalAxis_country_US" decimals="-3" id="Fact-C2B6FFC6F86F7576005FFA5BD4DD30BA" unitRef="usd">67156000</us-gaap:NoncurrentAssets>
	<us-gaap:NoncurrentAssets contextRef="FI2018Q4_srt_StatementGeographicalAxis_srt_EuropeMember" decimals="-3" id="Fact-91A1EC48B1A666D40607FA5BD487786B" unitRef="usd">23948000</us-gaap:NoncurrentAssets>
	<us-gaap:NumberOfBusinessesAcquired contextRef="FD2018Q4YTD" decimals="INF" id="Fact-59AF63E44616D512D05DFA5BD4E9E7BA" unitRef="acquisition">6</us-gaap:NumberOfBusinessesAcquired>
	<us-gaap:NumberOfReportableSegments contextRef="FD2017Q4YTD" decimals="INF" id="Fact-9A2EEA7622E7A8C314EBFA5BD4D9A273" unitRef="Segment">1</us-gaap:NumberOfReportableSegments>
	<us-gaap:NumberOfReportableSegments contextRef="FD2018Q4YTD" decimals="INF" id="Fact-B8D26658D29D8DD35332FA5BD4D7349F" unitRef="Segment">1</us-gaap:NumberOfReportableSegments>
	<us-gaap:OperatingIncomeLoss contextRef="FD2016Q4YTD" decimals="-3" id="Fact-37D8342A9542BD14392FFA5BD518DA46" unitRef="usd">154066000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-FCC36382C3D067FCC025962A66C4285C" unitRef="usd">-6718000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-E374BA456FDB01549E43962A63C54315" unitRef="usd">160784000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2017Q1QTD" decimals="-3" id="Fact-9CEC85A012DDFCEA93E6E777864AE296" unitRef="usd">37216000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2017Q2QTD" decimals="-3" id="Fact-07301E6065E79D757648E777886F71B2" unitRef="usd">60021000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2017Q3QTD" decimals="-3" id="Fact-7CE2967AE53194E28C37E7778A89742D" unitRef="usd">110849000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2017Q4QTD" decimals="-3" id="Fact-06CC3828438FDAF6A628E7778C8ED751" unitRef="usd">50775000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2017Q4YTD" decimals="-3" id="Fact-40B67D2ABC53183B1817FA5BD443569C" unitRef="usd">258861000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-F0E3CC80753A9D883AE096183BB4E702" unitRef="usd">-458000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-221831597D6CA5DB627996182F33AFF9" unitRef="usd">259319000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2018Q1QTD" decimals="-3" id="Fact-8ACE3C02001F615BEBBCE775D51E0592" unitRef="usd">34596000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2018Q2QTD" decimals="-3" id="Fact-283A7835662AB1457E01E775D5275653" unitRef="usd">63455000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2018Q3QTD" decimals="-3" id="Fact-222599EB30EB42F0FD0AE775D518D10A" unitRef="usd">77844000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2018Q4QTD" decimals="-3" id="Fact-E51A0226921BC1B0CD28E775D512DC81" unitRef="usd">45247000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingIncomeLoss contextRef="FD2018Q4YTD" decimals="-3" id="Fact-C880C3D19437FD5302A7FA5BD4563676" unitRef="usd">221142000</us-gaap:OperatingIncomeLoss>
	<us-gaap:OperatingLeaseLiability contextRef="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member_us-gaap_StatementScenarioAxis_us-gaap_ScenarioPlanMember" decimals="0" id="Fact-6726450FC518A16F2969E3A6810A185F" unitRef="usd">20000000</us-gaap:OperatingLeaseLiability>
	<us-gaap:OperatingLeaseRightOfUseAsset contextRef="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member_us-gaap_StatementScenarioAxis_us-gaap_ScenarioPlanMember" decimals="-6" id="Fact-3797174EBF625E1E43ABE3A49D0A8364" unitRef="usd">20000000</us-gaap:OperatingLeaseRightOfUseAsset>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsDue contextRef="FI2018Q4" decimals="-3" id="Fact-DB3AAE9B7BE70C643BD9FA5BD4EA0115" unitRef="usd">22747000</us-gaap:OperatingLeasesFutureMinimumPaymentsDue>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-1942F12C660582C32444FA5BD4EB86EC" unitRef="usd">7086000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears contextRef="FI2018Q4" decimals="-3" id="Fact-5D4E0719D3D75E4FECC4FA5BD4EBBEF5" unitRef="usd">2209000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears contextRef="FI2018Q4" decimals="-3" id="Fact-F6874C84A40E46A83BECFA5BD4EAECBE" unitRef="usd">2918000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears contextRef="FI2018Q4" decimals="-3" id="Fact-C2CE2486D1DCFBA39E19FA5BD4E905B8" unitRef="usd">4109000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears contextRef="FI2018Q4" decimals="-3" id="Fact-36BB4654C1051F50E5E3FA5BD4E90B0A" unitRef="usd">5227000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsDueThereafter contextRef="FI2018Q4" decimals="-3" id="Fact-B5902D9EBA7D6EDEB6C8FA5BD4EA461E" unitRef="usd">1198000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueThereafter>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsReceivable contextRef="FI2018Q4" decimals="-3" id="Fact-465CEA0FF0B322321D6BFA5BD4650C65" unitRef="usd">1228000</us-gaap:OperatingLeasesFutureMinimumPaymentsReceivable>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears contextRef="FI2018Q4" decimals="-3" id="Fact-7AFDA4A123CFEB323A9DFA5BD4622F82" unitRef="usd">307000</us-gaap:OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsReceivableInFourYears contextRef="FI2018Q4" decimals="-3" id="Fact-017499128F9F4E22B13FFA5BD464B2F1" unitRef="usd">307000</us-gaap:OperatingLeasesFutureMinimumPaymentsReceivableInFourYears>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears contextRef="FI2018Q4" decimals="-3" id="Fact-F173D74A08A9518BE713FA5BD4633666" unitRef="usd">307000</us-gaap:OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears>
	<us-gaap:OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears contextRef="FI2018Q4" decimals="-3" id="Fact-3A6AB480EAB37353CB92FA5BD4652C64" unitRef="usd">307000</us-gaap:OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears>
	<us-gaap:OperatingLeasesIncomeStatementLeaseRevenue contextRef="FD2016Q4YTD" decimals="0" id="Fact-3C6217D4B5012A1B19C9FA5BD45BCFC1" unitRef="usd">1911000</us-gaap:OperatingLeasesIncomeStatementLeaseRevenue>
	<us-gaap:OperatingLeasesIncomeStatementLeaseRevenue contextRef="FD2017Q4YTD" decimals="0" id="Fact-7238031F0BA07C6AFEE9FA5BD44E539E" unitRef="usd">1474000</us-gaap:OperatingLeasesIncomeStatementLeaseRevenue>
	<us-gaap:OperatingLeasesIncomeStatementLeaseRevenue contextRef="FD2018Q4YTD" decimals="0" id="Fact-7E21AB86138565AACED2FA5BD45AA9BC" unitRef="usd">1116000</us-gaap:OperatingLeasesIncomeStatementLeaseRevenue>
	<us-gaap:OperatingLeasesRentExpenseNet contextRef="FD2016Q4YTD" decimals="0" id="Fact-F5141CF0D8BB7071587FFA5BD450453B" unitRef="usd">6090000</us-gaap:OperatingLeasesRentExpenseNet>
	<us-gaap:OperatingLeasesRentExpenseNet contextRef="FD2017Q4YTD" decimals="0" id="Fact-A1CD2C1A1330FB8C834FFA5BD457B9A3" unitRef="usd">6738000</us-gaap:OperatingLeasesRentExpenseNet>
	<us-gaap:OperatingLeasesRentExpenseNet contextRef="FD2018Q4YTD" decimals="0" id="Fact-06CD62B849A3269796D4FA5BD4509220" unitRef="usd">8186000</us-gaap:OperatingLeasesRentExpenseNet>
	<us-gaap:OtherAccruedLiabilitiesCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-660D456EEFB533CC0A31FA5BD4853EAA" unitRef="usd">24122000</us-gaap:OtherAccruedLiabilitiesCurrent>
	<us-gaap:OtherAccruedLiabilitiesCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-8EDD06522B97B31DE72EFA5BD485CD2D" unitRef="usd">23550000</us-gaap:OtherAccruedLiabilitiesCurrent>
	<us-gaap:OtherAssetsNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-4C9E1037939430AF9ACEFA5BD4FB8935" unitRef="usd">2491000</us-gaap:OtherAssetsNoncurrent>
	<us-gaap:OtherAssetsNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-56D0A07C03852ADA8F47FA5BD51A6AB1" unitRef="usd">3925000</us-gaap:OtherAssetsNoncurrent>
	<us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent contextRef="FD2016Q4YTD" decimals="-3" id="Fact-91A20BFE54B9B0E7503CFA5BD509B690" unitRef="usd">1481000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
	<us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent contextRef="FD2017Q4YTD" decimals="-3" id="Fact-258F6A54687D0AA488C9FA5BD45FF09E" unitRef="usd">-126000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
	<us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent contextRef="FD2018Q4YTD" decimals="-3" id="Fact-92414942DC93758FFB66FA5BD511A8AD" unitRef="usd">-1686000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
	<us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent contextRef="FD2016Q4YTD" decimals="-3" id="Fact-68EBA6871482E1B4805EFA5BD5186F40" unitRef="usd">-5616000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
	<us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent contextRef="FD2017Q4YTD" decimals="-3" id="Fact-8E6CA9669423DEC8BF3CFA5BD44997FD" unitRef="usd">21992000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
	<us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent contextRef="FD2018Q4YTD" decimals="-3" id="Fact-62A4E39317DEE4578D8BFA5BD45BAD14" unitRef="usd">-4216000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
	<us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-E95BD752782509BE0843FA5BD4A98612" unitRef="usd">-228000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
	<us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-9DE0E854F37F3236D10AFA5BD4A5C7A6" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
	<us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-D71BCEC276C574F9B572FA5BD4A56618" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
	<us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-B6E2F67D6E967DCA2354FA5BD51A1B77" unitRef="usd">1672000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-9DBED94A3533BD4EDD18FA5BD462EEDE" unitRef="usd">1672000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-EEA968A381195D6825A3FA5BD4486A88" unitRef="usd">703000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-6F0622FA442E3CC558CEFA5BD4591001" unitRef="usd">703000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-223789A7FBC64BAE639AFA5BD4FB298E" unitRef="usd">-1185000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-A1A572DD1A49D832AAC9FA5BD50768DA" unitRef="usd">-1185000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-5E00D5FC360EB5EAE1E7FA5BD5089F02" unitRef="usd">-169000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-CDD2A88D5A0E064C51C5FA5BD441403B" unitRef="usd">-37000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-34E3FE862F43F4FEE2F4FA5BD44643DE" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-1599F8B0FE9609110BFDFA5BD4A7A0E1" unitRef="usd">-22000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
	<us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-ECE657B47ACBF236BFFAFA5BD4AADEE8" unitRef="usd">-5000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
	<us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-5736AE56F67A36770680FA5BD4A53767" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
	<us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-06600001D75F389D25D6FA5BD511877F" unitRef="usd">-5616000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-2BE315FF7507191BEE52FA5BD50F2927" unitRef="usd">-5616000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-6A5D29AF6840853DE1FFFA5BD44FF4B8" unitRef="usd">21992000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-981A75B5AF339D553CFBFA5BD4BF1211" unitRef="usd">21992000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-E5DED79C18D4ABCB3C05FA5BD508263E" unitRef="usd">-4216000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-BDEC222B58C8980D6243FA5BD45BA1B5" unitRef="usd">-4216000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-C93DE70ADDDCB4073FE2FA5BD497BA1A" unitRef="usd">-228000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
	<us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-F03CC86CDC04FE274D91FA5BD4A38AF4" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
	<us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="FD2018Q4YTD" id="Fact-6A9F2A3C70E4921CFB77FA5BD497BED8" unitRef="usd" xsi:nil="true" />
	<us-gaap:OtherComprehensiveIncomeLossNetOfTax contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember" decimals="-3" id="Fact-3D258BDC20E81AECBCD1FA5BD4C63C02" unitRef="usd">4000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="FD2016Q4YTD" decimals="-3" id="Fact-3A14C5A531509E94AC89FA5BD5108C2E" unitRef="usd">-4304000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
	<us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="FD2017Q4YTD" decimals="-3" id="Fact-AD4AD86607950F0E5584FA5BD441D4B8" unitRef="usd">21829000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
	<us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="FD2018Q4YTD" decimals="-3" id="Fact-F4C734A191C2A0AB19CAFA5BD505638B" unitRef="usd">-5902000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-EF3FC0CE198DEB6E5194FA5BD45C47A1" unitRef="usd">191000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-46A0C5E32A53A4FD1238FA5BD446923B" unitRef="usd">191000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="0" id="Fact-E6C15181B33BA89AAF63FA5BD4A8F546" unitRef="usd">191000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-DB8ABFE5E6F5A5A28E0FFA5BD4499802" unitRef="usd">829000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-E6F74A66B6D7E6A6A437FA5BD44BE998" unitRef="usd">829000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="0" id="Fact-7B6A2D5354FCD0EC80F7FA5BD44AFAD5" unitRef="usd">829000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-C87A63EFDF257E8DE65EFA5BD45F284F" unitRef="usd">501000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-963F671ED21F32538C7EFA5BD44CF1E8" unitRef="usd">501000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="0" id="Fact-9EC0D6C3A526A53DB1C5FA5BD4ACEA1A" unitRef="usd">501000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-25EDD6DB1F0151135ECBFA5BD44D925E" unitRef="usd">-398000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax contextRef="FD2016Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember" decimals="-3" id="Fact-4EA901BC9DCB767CC626FA5BD479A31F" unitRef="usd">-398000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-0A732EB8F8A5E7EE7675FA5BD4D50C66" unitRef="usd">-398000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-7775B4616F40D44D917AFA5BD44D8BE8" unitRef="usd">41000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember" decimals="-3" id="Fact-70EB921FE3353270CE58FA5BD45B7A5B" unitRef="usd">41000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-31FA3937F3F16738482AFA5BD4BE934E" unitRef="usd">41000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-F67288DFAC160846BFF5FA5BD517144B" 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="Fact-6664506AE980254CA57AFA5BD47A8814" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax contextRef="FD2016Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember" decimals="-3" id="Fact-849EFE38CDFB64FCCF4AFA5BD45E1F69" unitRef="usd">37000</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember" decimals="-3" id="Fact-3E39F925B340647A72B4FA5BD4790EDD" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember" decimals="-3" id="Fact-576899CF4DCE4281CE02FA5BD47A16BE" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-D3D5AF904B19642E211DFA5BD50BE969" unitRef="usd">-567000</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-B15B3BEA35D9AA031651FA5BD447E996" unitRef="usd">-567000</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-918851CD5855C911CA56FA5BD44EF981" unitRef="usd">4000</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-057F8760FA8249CE4260FA5BD4C71E61" unitRef="usd">4000</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-C1594B1655EDC0EB31D9FA5BD44DE509" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-BDFB500F3E020BD47079FA5BD4A88A18" unitRef="usd">248000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-6790CD609B5482BF2052FA5BD4A788CB" unitRef="usd">2000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
	<us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-2BE0421C760D10B1E23EFA5BD4AB76FD" unitRef="usd">188000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
	<us-gaap:OtherLiabilitiesNoncurrent contextRef="FI2017Q4" decimals="-3" id="Fact-BFB625A53E6D8EC27262FA5BD4FAEA9C" unitRef="usd">5904000</us-gaap:OtherLiabilitiesNoncurrent>
	<us-gaap:OtherLiabilitiesNoncurrent contextRef="FI2018Q4" decimals="-3" id="Fact-E9DBFF831FBBFE968B8EFA5BD4F880A6" unitRef="usd">3866000</us-gaap:OtherLiabilitiesNoncurrent>
	<us-gaap:OtherNonoperatingIncomeExpense contextRef="FD2016Q4YTD" decimals="-3" id="Fact-F98D3918B111F1786B3EFA5BD457A594" unitRef="usd">871000</us-gaap:OtherNonoperatingIncomeExpense>
	<us-gaap:OtherNonoperatingIncomeExpense contextRef="FD2017Q4YTD" decimals="-3" id="Fact-068D7982ED6912BE285BFA5BD50A2379" unitRef="usd">-338000</us-gaap:OtherNonoperatingIncomeExpense>
	<us-gaap:OtherNonoperatingIncomeExpense contextRef="FD2018Q4YTD" decimals="-3" id="Fact-F0A6FF20A1DF5B46DC1DFA5BD4572AD2" unitRef="usd">-219000</us-gaap:OtherNonoperatingIncomeExpense>
	<us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet contextRef="FD2016Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="0" id="Fact-327EC60A63C7C21BFAD9FA5BD51773D3" unitRef="usd">0</us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet>
	<us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet contextRef="FD2017Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="0" id="Fact-A392A51E1F6217A43F90FA5BD5186F44" unitRef="usd">0</us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet>
	<us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet contextRef="FD2018Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" decimals="0" id="Fact-7A6EBE9CFE347AA224BBFA5BD51A7F0D" unitRef="usd">0</us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet>
	<us-gaap:PaymentsForPreviousAcquisition contextRef="FD2016Q4YTD" decimals="-3" id="Fact-00543A8623B99B866D33FA5BD460C4BA" unitRef="usd">337000</us-gaap:PaymentsForPreviousAcquisition>
	<us-gaap:PaymentsForPreviousAcquisition contextRef="FD2017Q4YTD" decimals="-3" id="Fact-8C0936EE922B5B177ACCFA5BD448CFF1" unitRef="usd">1926000</us-gaap:PaymentsForPreviousAcquisition>
	<us-gaap:PaymentsForPreviousAcquisition contextRef="FD2018Q4YTD" decimals="-3" id="Fact-672210087979793095CDFA5BD450E4DB" unitRef="usd">1000000</us-gaap:PaymentsForPreviousAcquisition>
	<us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates contextRef="FD2016Q4YTD" decimals="-3" id="Fact-E94114732F7BC4E7327FFA5BD46809D2" unitRef="usd">113000</us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates>
	<us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates contextRef="FD2017Q4YTD" decimals="-3" id="Fact-0A9A454E2AC6EA31F83AFA5BD4572CDA" unitRef="usd">291000</us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates>
	<us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates contextRef="FD2018Q4YTD" decimals="-3" id="Fact-BAD87B1DD6D1EFE27EBDFA5BD44CA428" unitRef="usd">0</us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates>
	<us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="FD2016Q4YTD" decimals="-3" id="Fact-0D89C9BB77AF8B85490AFA5BD46D303A" unitRef="usd">47149000</us-gaap:PaymentsForRepurchaseOfCommonStock>
	<us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="FD2017Q4YTD" decimals="-3" id="Fact-96E2421CBC0BB7AA5AC5FA5BD4699BE1" unitRef="usd">123715000</us-gaap:PaymentsForRepurchaseOfCommonStock>
	<us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="FD2018Q4YTD" decimals="-3" id="Fact-620A88B156073E142613FA5BD46A1447" unitRef="usd">203822000</us-gaap:PaymentsForRepurchaseOfCommonStock>
	<us-gaap:PaymentsOfDividends contextRef="FD2017Q4YTD" decimals="0" id="Fact-3B46F8C64847D6D623CAFA5BD46EEFDD" unitRef="usd">29037000</us-gaap:PaymentsOfDividends>
	<us-gaap:PaymentsOfDividends contextRef="FD2018Q4YTD" decimals="0" id="Fact-48400AAD073A608FE083FA5BD46BAFAE" unitRef="usd">31865000</us-gaap:PaymentsOfDividends>
	<us-gaap:PaymentsOfDividendsCommonStock contextRef="FD2016Q4YTD" decimals="-3" id="Fact-45016CC929BEA37A342AFA5BD470EA4A" unitRef="usd">25213000</us-gaap:PaymentsOfDividendsCommonStock>
	<us-gaap:PaymentsOfDividendsCommonStock contextRef="FD2017Q4YTD" decimals="-3" id="Fact-22D944E2EE2FDF9A7461FA5BD45BBE57" unitRef="usd">29037000</us-gaap:PaymentsOfDividendsCommonStock>
	<us-gaap:PaymentsOfDividendsCommonStock contextRef="FD2018Q4YTD" decimals="-3" id="Fact-37F06343D381A479CF0BFA5BD46D2278" unitRef="usd">31865000</us-gaap:PaymentsOfDividendsCommonStock>
	<us-gaap:PaymentsToAcquireBusinessesGross contextRef="D2016Q3Aug30_us-gaap_BusinessAcquisitionAxis_cgnx_AQSenseS.L.Member" decimals="-3" id="Fact-7524D95FBF55C2143B0BFA5BD4EDE043" unitRef="usd">2519000</us-gaap:PaymentsToAcquireBusinessesGross>
	<us-gaap:PaymentsToAcquireBusinessesGross contextRef="D2016Q3Nov30_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" decimals="-3" id="Fact-A7A0D30D0FDFBB124C94FA5BD4E66598" unitRef="usd">3538000</us-gaap:PaymentsToAcquireBusinessesGross>
	<us-gaap:PaymentsToAcquireBusinessesGross contextRef="D2016Q4Dec09_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="-6" id="Fact-A22673DB84CC59195BA3FA5BD4C9A307" unitRef="usd">3000000</us-gaap:PaymentsToAcquireBusinessesGross>
	<us-gaap:PaymentsToAcquireBusinessesGross contextRef="D2016Q4Oct27_us-gaap_BusinessAcquisitionAxis_cgnx_EnShapeGmbHMember" decimals="-3" id="Fact-0371415F38366EA11496FA5BD4A71993" unitRef="usd">5395000</us-gaap:PaymentsToAcquireBusinessesGross>
	<us-gaap:PaymentsToAcquireBusinessesGross contextRef="D2017Q1Jan01-Jan31_us-gaap_BusinessAcquisitionAxis_cgnx_WebscanInc.Member" decimals="-3" id="Fact-78A36FFDC61D7C71B909FA5BD4A1DBB3" unitRef="usd">176000</us-gaap:PaymentsToAcquireBusinessesGross>
	<us-gaap:PaymentsToAcquireBusinessesGross contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" decimals="-3" id="Fact-B851DCEFD199010DBD54FA5BD4C0B674" unitRef="usd">20019000</us-gaap:PaymentsToAcquireBusinessesGross>
	<us-gaap:PaymentsToAcquireBusinessesGross contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-3" id="Fact-3343FA6EE3C4401180DAFA5BD4ED615D" unitRef="usd">4069000</us-gaap:PaymentsToAcquireBusinessesGross>
	<us-gaap:PaymentsToAcquireBusinessesGross contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" decimals="-6" id="Fact-BF77F652BB5A9C81BF5EE44F91A0BADD" unitRef="usd">1000000</us-gaap:PaymentsToAcquireBusinessesGross>
	<us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="FD2016Q4YTD" decimals="-3" id="Fact-4DF2FAB91A8C9C7FA253FA5BD444968F" unitRef="usd">14285000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
	<us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="FD2017Q4YTD" decimals="-3" id="Fact-A37850967250FF5B9660FA5BD46C3D2C" unitRef="usd">24118000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
	<us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="FD2018Q4YTD" decimals="-3" id="Fact-DF8062580134095CB930FA5BD442EAD3" unitRef="usd">4265000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
	<us-gaap:PaymentsToAcquireInvestments contextRef="FD2016Q4YTD" decimals="-3" id="Fact-89A2322054E8D36A18CCFA5BD4453FFA" unitRef="usd">751868000</us-gaap:PaymentsToAcquireInvestments>
	<us-gaap:PaymentsToAcquireInvestments contextRef="FD2017Q4YTD" decimals="-3" id="Fact-AAAB331FBDE0FC81D1DBFA5BD44E8C2D" unitRef="usd">636856000</us-gaap:PaymentsToAcquireInvestments>
	<us-gaap:PaymentsToAcquireInvestments contextRef="FD2018Q4YTD" decimals="-3" id="Fact-61370F34B5ED875C1F57FA5BD45DF923" unitRef="usd">782032000</us-gaap:PaymentsToAcquireInvestments>
	<us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="FD2016Q4YTD" decimals="-3" id="Fact-849C14B9F3EE047E273CFA5BD46871D9" unitRef="usd">12816000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
	<us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="FD2017Q4YTD" decimals="-3" id="Fact-76E4DA4FF5DBB3840EC2FA5BD4465252" unitRef="usd">28754000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
	<us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="FD2018Q4YTD" decimals="-3" id="Fact-0265799A0DAE143AA0F8FA5BD4763D71" unitRef="usd">37095000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
	<us-gaap:PreferredStockParOrStatedValuePerShare contextRef="FI2018Q4" decimals="INF" id="Fact-4D5DE7D7ED4C01C3A4E4FA5BD4683E19" unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
	<us-gaap:PreferredStockSharesAuthorized contextRef="FI2018Q4" decimals="INF" id="Fact-2341EB70BA4DC469639EFA5BD46A2038" unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
	<us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-69930AA26D4A1960F848FA5BD4EF6AA3" unitRef="usd">30683000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
	<us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="FI2017Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-00CF348E4B10504469D4962D87779261" unitRef="usd">-117000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
	<us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="FI2017Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-1F9AAA9A66812CDE64C9962D7BD7E62F" unitRef="usd">30800000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
	<us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-7A88ABBFA172C6E4374DFA5BD502C5BA" unitRef="usd">34000000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
	<us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions contextRef="FD2016Q4YTD" decimals="-3" id="Fact-A132ED4860567F6FF328FA5BD4434C55" unitRef="usd">43468000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
	<us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions contextRef="FD2017Q4YTD" decimals="-3" id="Fact-B3F3B54F50F6AA3F8CAAFA5BD466B9B8" unitRef="usd">54557000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
	<us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions contextRef="FD2018Q4YTD" decimals="-3" id="Fact-A97618192D93D88CC8A0FA5BD4435321" unitRef="usd">26783000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
	<us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments contextRef="FD2016Q4YTD" decimals="-3" id="Fact-4DA6360B80E868786A87FA5BD46FBD45" unitRef="usd">657250000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
	<us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments contextRef="FD2017Q4YTD" decimals="-3" id="Fact-0019C4A0D1897857A3FEFA5BD44DB9FD" unitRef="usd">584464000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
	<us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments contextRef="FD2018Q4YTD" decimals="-3" id="Fact-145C995BDA5972A7FAE5FA5BD470F172" unitRef="usd">812565000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
	<us-gaap:ProductWarrantyAccrual contextRef="FI2016Q4" decimals="-3" id="Fact-985EB757B417B6BA1631FA5BD4D70634" unitRef="usd">4335000</us-gaap:ProductWarrantyAccrual>
	<us-gaap:ProductWarrantyAccrual contextRef="FI2017Q4" decimals="-3" id="Fact-E43C86DA45A27BAE0A50FA5BD4D6221F" unitRef="usd">4701000</us-gaap:ProductWarrantyAccrual>
	<us-gaap:ProductWarrantyAccrual contextRef="FI2018Q4" decimals="-3" id="Fact-8D5EB7C09077724A3C2BFA5BD4CF2F69" unitRef="usd">4743000</us-gaap:ProductWarrantyAccrual>
	<us-gaap:ProductWarrantyAccrualClassifiedCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-D9BA738CD444EB59C6D8FA5BD485FFD9" unitRef="usd">4701000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
	<us-gaap:ProductWarrantyAccrualClassifiedCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-D819F8ADD9C45E1DC1E5FA5BD480EECB" unitRef="usd">4743000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
	<us-gaap:ProductWarrantyAccrualPayments contextRef="FD2017Q4YTD" decimals="-3" id="Fact-82AD3F1EE3229296D180FA5BD4DA13C7" unitRef="usd">3109000</us-gaap:ProductWarrantyAccrualPayments>
	<us-gaap:ProductWarrantyAccrualPayments contextRef="FD2018Q4YTD" decimals="-3" id="Fact-A456660854B6A2826BE7FA5BD4D97E2B" unitRef="usd">4024000</us-gaap:ProductWarrantyAccrualPayments>
	<us-gaap:ProductWarrantyAccrualWarrantiesIssued contextRef="FD2017Q4YTD" decimals="-3" id="Fact-7FAFF1CC0E626FAA1EE0FA5BD4CE97DF" unitRef="usd">2843000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
	<us-gaap:ProductWarrantyAccrualWarrantiesIssued contextRef="FD2018Q4YTD" decimals="-3" id="Fact-1AC7E23AE977FC777C20FA5BD4D9E829" unitRef="usd">4184000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
	<us-gaap:PropertyPlantAndEquipmentDisposals contextRef="FD2017Q4YTD" decimals="0" id="Fact-E8F440E3073B380B6849FA5BD50E3EF0" unitRef="usd">6327000</us-gaap:PropertyPlantAndEquipmentDisposals>
	<us-gaap:PropertyPlantAndEquipmentDisposals contextRef="FD2018Q4YTD" decimals="0" id="Fact-6EF260F003BC5A8A400CFA5BD50EB5CE" unitRef="usd">6367000</us-gaap:PropertyPlantAndEquipmentDisposals>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2017Q4" decimals="-3" id="Fact-E896C2591322A8827C2DFA5BD4CFFC3F" unitRef="usd">157752000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2017Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember" decimals="-3" id="Fact-100783153301AF1D6DEDFA5BD4CD5D4D" unitRef="usd">61835000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2017Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember" decimals="-3" id="Fact-03E243AE057D642F6E09FA5BD4D50F5A" unitRef="usd">33189000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2017Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember" decimals="-3" id="Fact-31B4105A5481ED7C85CFFA5BD4C8251F" unitRef="usd">24589000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2017Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember" decimals="-3" id="Fact-3E20B4315D1213C6AEF2FA5BD4CCCB0D" unitRef="usd">21312000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2017Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember" decimals="-3" id="Fact-E7FD46C37FB9E4E35F4FFA5BD4C8CBBA" unitRef="usd">6363000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2017Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember" decimals="-3" id="Fact-E5A6E1C7474BC57C349FFA5BD4CBEDEA" unitRef="usd">3951000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2017Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember" decimals="-3" id="Fact-8E32CE7539A721D4D06EFA5BD4CD78F0" unitRef="usd">6513000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2018Q4" decimals="-3" id="Fact-9E0B64A8C4C0A45D3766FA5BD4CD2E14" unitRef="usd">183470000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember" decimals="-3" id="Fact-21E621B81AAB53BFE5ACFA5BD4C92CB7" unitRef="usd">66542000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember" decimals="-3" id="Fact-10D32DEA395D1D0A71C1FA5BD4CAF5DE" unitRef="usd">45067000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember" decimals="-3" id="Fact-0E25A337A63C3C1CF1F4FA5BD4CC8403" unitRef="usd">24533000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember" decimals="-3" id="Fact-A113BD214804F98497ADFA5BD4D56E6B" unitRef="usd">27378000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember" decimals="-3" id="Fact-63EA9557593C491B786FFA5BD4C7713D" unitRef="usd">6904000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember" decimals="-3" id="Fact-D88F6814C1533EDDB3AFFA5BD4D525EA" unitRef="usd">3951000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentGross contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember" decimals="-3" id="Fact-A9717FBCF2A1FE10AADCFA5BD4CE7342" unitRef="usd">9095000</us-gaap:PropertyPlantAndEquipmentGross>
	<us-gaap:PropertyPlantAndEquipmentNet contextRef="FI2017Q4" decimals="-3" id="Fact-4DEAC9FC5EB4D7CA22AFFA5BD4F752F5" unitRef="usd">78048000</us-gaap:PropertyPlantAndEquipmentNet>
	<us-gaap:PropertyPlantAndEquipmentNet contextRef="FI2018Q4" decimals="-3" id="Fact-CE550C3D230117AF7F4DFA5BD45E3255" unitRef="usd">91396000</us-gaap:PropertyPlantAndEquipmentNet>
	<us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember" id="Fact-DF128EC42971FB930BC9FA5BD4A71FBE">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
	<us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember" id="Fact-205EC136D0F6B690F50EFA5BD4A2CA67">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
	<us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember" id="Fact-F834884FC72C1B1FF379FA5BD4AD8E28">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
	<us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember" id="Fact-69A06702214E071CDFCDFA5BD4B9804D">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
	<us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember" id="Fact-26F093BE8B7C43642648FA5BD4B59E0C">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
	<us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember" id="Fact-C4C21D27DCA1A74179B5FA5BD4A09DFB">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
	<us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="FD2018Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember" id="Fact-0A8822C8E5F73177E4B6FA5BD4A681FE">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
	<us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="FD2018Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember" id="Fact-9D8342D0275DA8676E39FA5BD4459587">P39Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
	<us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation contextRef="FI2017Q4" decimals="0" id="Fact-F2B51E1F1D0725886FBEFA5BD50D3438" unitRef="usd">3069000</us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation>
	<us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation contextRef="FI2018Q4" decimals="0" id="Fact-4104049E78962F6E63F1FA5BD50EB865" unitRef="usd">234000</us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation>
	<us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross contextRef="FI2017Q4" decimals="0" id="Fact-B7FE67DAB467F2B2B7F9FA5BD50E581E" unitRef="usd">5750000</us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross>
	<us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross contextRef="FI2018Q4" decimals="0" id="Fact-C1EAE5F1023FA0EDCA3777B9A033B728" unitRef="usd">800000</us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross>
	<us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted contextRef="FI2018Q4" decimals="0" id="Fact-42EEB981EB729D18D059FA5BD4584E4C" unitRef="usd">11097000</us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted>
	<us-gaap:ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember" decimals="-3" id="Fact-E69EFC5C45A9F1864A2CFA5BD4C302BC" unitRef="usd">-41000</us-gaap:ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax>
	<us-gaap:ResearchAndDevelopmentExpense contextRef="FD2016Q4YTD" decimals="-3" id="Fact-4A4F1F87AF7CD813AE8FFA5BD441031D" unitRef="usd">78269000</us-gaap:ResearchAndDevelopmentExpense>
	<us-gaap:ResearchAndDevelopmentExpense contextRef="FD2017Q4YTD" decimals="-3" id="Fact-C3DEFEABA14DB22C7EF1FA5BD517B80D" unitRef="usd">99205000</us-gaap:ResearchAndDevelopmentExpense>
	<us-gaap:ResearchAndDevelopmentExpense contextRef="FD2018Q4YTD" decimals="-3" id="Fact-EBA4E39ACA05760F43ECFA5BD44215D4" unitRef="usd">116445000</us-gaap:ResearchAndDevelopmentExpense>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2015Q4" decimals="-3" id="Fact-259424E298F422F0E7F1E3C25CD9AAF5" unitRef="usd">573286000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2015Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-C3377A4A26DE0BB3B075E3C257569819" unitRef="usd">6664000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2015Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-2772711D1A6775316AF2E3C2548A074C" unitRef="usd">566622000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2016Q4" decimals="-3" id="Fact-18402A369D0D8A414310E3C0CDEDAA98" unitRef="usd">644622000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2016Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-ABA4DF4EE5D0696D5B55E3C0CB0B116B" unitRef="usd">786000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2016Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-6078893AA3847D281BBCE3C0C81E8B50" unitRef="usd">643836000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2017Q4" decimals="-3" id="Fact-BC2EB406DD1946065D8BFA5BD50190CC" unitRef="usd">668587000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2017Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-153B0C059518CDA5A03D962FDF27D1B0" unitRef="usd">320000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2017Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-00940E36965D5AD5D91E962FF017B5AB" unitRef="usd">668267000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RetainedEarningsAccumulatedDeficit contextRef="FI2018Q4" decimals="-3" id="Fact-B7BC94A22C7B09DDD500FA5BD4F063CE" unitRef="usd">646214000</us-gaap:RetainedEarningsAccumulatedDeficit>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD" decimals="-3" id="Fact-2621295BE73CBE76FE37FA5BD4442284" unitRef="usd">529515000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember" decimals="-3" id="Fact-49AAB8C1DE82211C8A01963A98CA9908" unitRef="usd">116090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember" decimals="-3" id="Fact-509C7EF3108BE77675A3963A95650C62" unitRef="usd">413425000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-7C43012CA63CFA0F9015962A5316BAF1" unitRef="usd">8762000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-E7EE761329CB23D05F94962A504C0B38" unitRef="usd">520753000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" decimals="-3" id="Fact-0A4A471888C54A16783D9636D281A9D1" unitRef="usd">66179000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember" decimals="-3" id="Fact-E4F996D83206B87142109636D2FBE2CE" unitRef="usd">70666000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" decimals="-3" id="Fact-D4882C9C22CB77F7F16AFA5BD4DFD07D" unitRef="usd">90645000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_StatementGeographicalAxis_country_US" decimals="-3" id="Fact-54FDAE844CF1170C1CCFFA5BD4DEFDAB" unitRef="usd">142380000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember" decimals="-3" id="Fact-849E175FEB0973A3E4669636D188C1D1" unitRef="usd">162359000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2016Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember" decimals="-3" id="Fact-CD34EC7980A5933BCFC79636D2070BA2" unitRef="usd">230311000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q1QTD" decimals="-3" id="Fact-710A43970A6C4057A770E777746C3482" unitRef="usd">139039000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q2QTD" decimals="-3" id="Fact-6EE288EEA299A573A025E77776D0C538" unitRef="usd">178080000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q3QTD" decimals="-3" id="Fact-7C8E401511C72347491EE777796D4ADD" unitRef="usd">266042000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4QTD" decimals="-3" id="Fact-B05EF16FCD8061B0349FE7777B9C0DC0" unitRef="usd">182922000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD" decimals="-3" id="Fact-37E56BF3C157EBE47710FA5BD4426370" unitRef="usd">766083000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember" decimals="-3" id="Fact-5EB66F0BD30D6528C0B9963A977AA683" unitRef="usd">162887000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember" decimals="-3" id="Fact-98E7EBCB41459066A29E963A9417102B" unitRef="usd">603196000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201409Member" decimals="-3" id="Fact-DD8A77B43F9C67FC989096175C647E42" unitRef="usd">18133000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" decimals="-3" id="Fact-159F313E3C8A14E2BA9D961741A17D6F" unitRef="usd">747950000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" decimals="-3" id="Fact-2CC52096CA27A7CB3BCC9636A8DB51CA" unitRef="usd">108738000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember" decimals="-3" id="Fact-8F7C0F360D7173EFAA7E9636A980444B" unitRef="usd">114181000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" decimals="-3" id="Fact-A01D88E06F5C5BFAA802FA5BD4C537E6" unitRef="usd">148271000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_country_US" decimals="-3" id="Fact-C8EF73C386BCACED92F3FA5BD4C6AA4E" unitRef="usd">180248000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember" decimals="-3" id="Fact-3E2E04E336CED71C06909636A7A0963F" unitRef="usd">214338000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember" decimals="-3" id="Fact-CE1D5669A2F3810A70FF9636A83919CE" unitRef="usd">328826000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q1QTD" decimals="-3" id="Fact-42C2816472E2421EAC06E7759E73EFAF" unitRef="usd">169567000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q2QTD" decimals="-3" id="Fact-25259B2AF7EE2D78D8CBE7759E5602DB" unitRef="usd">211264000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q3QTD" decimals="-3" id="Fact-B97594C7798F4F276A94E7759E4436F8" unitRef="usd">232221000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4QTD" decimals="-3" id="Fact-8C66639B85219E889FBFE7759E2AB645" unitRef="usd">193286000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4YTD" decimals="-3" id="Fact-86616B6290C7F06DB5FFFA5BD446A46C" unitRef="usd">806338000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember" decimals="-3" id="Fact-9076AEC0BD0491D8C7B9963A96359645" unitRef="usd">151829000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember" decimals="-3" id="Fact-73179E72030F5A8AA361963A92CA6D90" unitRef="usd">654509000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" decimals="-3" id="Fact-AB5A5A2EFA4E895AF06F9636709FB834" unitRef="usd">126109000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember" decimals="-3" id="Fact-A5676876FD4D62632885963671EF7612" unitRef="usd">105221000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" decimals="-3" id="Fact-666ADF79D320DC248BEFFA5BD4E8442F" unitRef="usd">140504000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_country_US" decimals="-3" id="Fact-9D3D971087AB0F23532FFA5BD4D8B301" unitRef="usd">231760000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember" decimals="-3" id="Fact-9403ED41ABFC0054469596366F9C7273" unitRef="usd">267043000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember" decimals="-3" id="Fact-9AA40836C50DDC70940D9636702A96A7" unitRef="usd">307965000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
	<us-gaap:SellingGeneralAndAdministrativeExpense contextRef="FD2016Q4YTD" decimals="-3" id="Fact-F6EA034D52C919B345EBFA5BD51A3060" unitRef="usd">166110000</us-gaap:SellingGeneralAndAdministrativeExpense>
	<us-gaap:SellingGeneralAndAdministrativeExpense contextRef="FD2017Q4YTD" decimals="-3" id="Fact-218AD99477F64F4E65C4FA5BD44017E3" unitRef="usd">220728000</us-gaap:SellingGeneralAndAdministrativeExpense>
	<us-gaap:SellingGeneralAndAdministrativeExpense contextRef="FD2018Q4YTD" decimals="-3" id="Fact-90C51BACF806743011C1FA5BD448F979" unitRef="usd">262699000</us-gaap:SellingGeneralAndAdministrativeExpense>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" id="Fact-FC20894F54FDE1E8AE46E7083F010287">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember" id="Fact-0077DE22F6395EF252ECFA5BD4BC2204">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" id="Fact-BC31F1A8B7C53724ED87FA5BD4AA66E7">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="FD2018Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember" id="Fact-D2508D948B68B0D243E7FA5BD4DB9826">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" id="Fact-DFAC4A8E4479CD7B1CA0FA5BD47EEB80">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="-3" id="Fact-9F72AA5AC493603A7573FA5BD4E2862E" unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="2" id="Fact-C6F35E730686C48001AAFA5BD4E4CE8E" unitRef="usdPerShare">0.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="-3" id="Fact-B29F78D6CFE12EBBD15AFA5BD4E4AA46" unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="2" id="Fact-AB6B884F980871CA5923FA5BD4E1A9D7" unitRef="usdPerShare">0.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber contextRef="FI2017Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="-3" id="Fact-D7E4A1A673971D6AAA1FFA5BD4E2D742" unitRef="shares">20000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber contextRef="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="-3" id="Fact-5FE2D3FCE66F4F85D46CFA5BD4E548A7" unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="FI2017Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="2" id="Fact-1B5688CE467D96BF25BFFA5BD4E48FC4" unitRef="usdPerShare">17.03</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="2" id="Fact-1B8FA33D16953B1E15C4FA5BD4E33E90" unitRef="usdPerShare">0.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="-3" id="Fact-50BE91A90B30DC8C39E0FA5BD4E5501B" unitRef="shares">20000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="2" id="Fact-9B0AC20B211497578D74FA5BD4E4380D" unitRef="usdPerShare">17.03</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="FD2016Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="4" id="Fact-04743D624C6AD6D4F5B2FA5BD4C21FB9" unitRef="number">0.0083</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="4" id="Fact-5206B37AC0C2AD57CE41FA5BD4C35319" unitRef="number">0.0040</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="4" id="Fact-3871E317FECD155FE940FA5BD4CC0663" unitRef="number">0.0035</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="FD2016Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="2" id="Fact-27FE67CCB03695E2D9C4FA5BD4C28423" unitRef="number">0.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="2" id="Fact-FF1A84496B81888FFAE5FA5BD4BAD3DA" unitRef="number">0.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="2" id="Fact-0968CB403C80B9AEC853FA5BD4C4ECD6" unitRef="number">0.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="FD2016Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="3" id="Fact-C9AC5F66FA70DDFED416FA5BD4DC9B81" unitRef="number">0.017</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="3" id="Fact-58CCD652D81667F933F9FA5BD4BF4843" unitRef="number">0.024</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="3" id="Fact-1B6D3CF168E2E4D1A304FA5BD4DB7C14" unitRef="number">0.029</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant contextRef="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" decimals="0" id="Fact-701177A890D66495FAEEFA5BD48D68EA" unitRef="shares">19578752</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="FI2018Q4" decimals="-3" id="Fact-2B75176D5FE537BFC8E0FA5BD47E9746" unitRef="shares">4556000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice contextRef="FI2018Q4" decimals="2" id="Fact-2CC8185FE08C50155599FA5BD47DF6BC" unitRef="usdPerShare">20.94</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod contextRef="FD2018Q4YTD" decimals="-3" id="Fact-777612265478B0DF97C0FA5BD47E29D3" unitRef="shares">441000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice contextRef="FD2018Q4YTD" decimals="2" id="Fact-45CE87C5B2532B1DFE9BFA5BD477BDB5" unitRef="usdPerShare">33.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod contextRef="FD2018Q4YTD" decimals="-3" id="Fact-9EE91CBBF9D87E7E28CEFA5BD47A8437" unitRef="shares">2997000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="FD2016Q4YTD" decimals="2" id="Fact-E11567B551E5D01BDEBAFA5BD46CEAF9" unitRef="usdPerShare">6.33</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="FD2017Q4YTD" decimals="2" id="Fact-971A822A2D3D3F80E420FA5BD4DCC272" unitRef="usdPerShare">15.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="FD2018Q4YTD" decimals="2" id="Fact-72BB105E4A0A7413B7E0FA5BD4AF2124" unitRef="usdPerShare">20.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="FI2018Q4" decimals="-3" id="Fact-423818FF01896A01A1E4FA5BD47D18B3" unitRef="usd">146270000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="FI2017Q4" decimals="-3" id="Fact-EEFDE26512A4520FDEE6FA5BD47DDB11" unitRef="shares">12726000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="FI2018Q4" decimals="-3" id="Fact-29DE2B11BEC84ECBC570FA5BD479D4D5" unitRef="shares">13789000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="FI2017Q4" decimals="2" id="Fact-4B8D280F3EAF3610E633FA5BD46FD14D" unitRef="usdPerShare">25.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="FI2018Q4" decimals="2" id="Fact-E6511D27364B36EF0924FA5BD47CD72E" unitRef="usdPerShare">31.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber contextRef="FI2018Q4" decimals="-3" id="Fact-BE4C3F9BD89EBDC8E895FA5BD47FC2E5" unitRef="shares">12499000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="FI2018Q4" decimals="-3" id="Fact-0C089FDD2D84BE0C181DFA5BD4822977" unitRef="usd">141643000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
	<us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice contextRef="FI2018Q4" decimals="2" id="Fact-30EE13D15E7071650CC6FA5BD4811E3E" unitRef="usdPerShare">30.60</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
	<us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice contextRef="FD2018Q4YTD" decimals="2" id="Fact-BCCF2F67E7F998781393FA5BD470803D" unitRef="usdPerShare">17.94</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
	<us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice contextRef="FD2018Q4YTD" decimals="2" id="Fact-72211724DE67A366C945FA5BD46F3C95" unitRef="usdPerShare">52.67</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
	<us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested contextRef="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="-3" id="Fact-3D5FD406B58BF196DFC4FA5BD4E3E126" unitRef="usd">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested>
	<us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" decimals="-3" id="Fact-60C976DCE91FF1C09512FA5BD4E58B9C" unitRef="usd">993000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
	<us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="FD2016Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" id="Fact-04FCD4972326979113F2FA5BD4BA52D7">P5Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
	<us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" id="Fact-AEA57DBF283CCB1C9CFCFA5BD4BBFB60">P5Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
	<us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" id="Fact-886B8FD68BC6496DDD10FA5BD487AE50">P5Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
	<us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="FD2018Q4YTD" id="Fact-134A0635C9445277A125FA5BD4769156">P5Y10M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
	<us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="FD2018Q4YTD" id="Fact-328664703F0515EE1CB3FA5BD47FF752">P7Y4M10D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
	<us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="FD2018Q4YTD" id="Fact-5342CCB66FCE7658527DFA5BD47CE4D4">P7Y2M23D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
	<us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss contextRef="FD2017Q4YTD" decimals="-3" id="Fact-547B563F958B7F8F8B71FA5BD4DA4F13" unitRef="usd">632000</us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss>
	<us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss contextRef="FD2018Q4YTD" decimals="-3" id="Fact-61D93726F6EBD5E8BEFAFA5BD4DBAFD2" unitRef="usd">-118000</us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss>
	<us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-1042DEB0F497FB9403C7FA5BD4BC16A4" unitRef="shares">3954000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-AE48C9248EEC121B3C5FFA5BD5188CF2" unitRef="shares">4162000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="FD2018Q4YTD" decimals="-3" id="Fact-310227B675E379617B29FA5BD476C3C8" unitRef="shares">1493000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-5875DD5BC22D49114E90FA5BD4C89938" unitRef="shares">1493000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="FD2016Q4YTD" decimals="-3" id="Fact-EB6E1187977BECC86618FA5BD4D6E954" unitRef="usd">43468000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-02DFDA2FF07706618C07FA5BD508DB42" unitRef="usd">43460000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-3406F8382C4694FF2C2DFA5BD50B2588" unitRef="usd">8000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="FD2017Q4YTD" decimals="-3" id="Fact-9D054201CA6C4DB24831FA5BD4CB867A" unitRef="usd">54557000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-C94A43ACDE218ED68864FA5BD4D84B7E" unitRef="usd">54549000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-60BC0D973BFD926757A1FA5BD4C00296" unitRef="usd">8000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="FD2018Q4YTD" decimals="-3" id="Fact-0B1F847B4618FEB044E2FA5BD518CA47" unitRef="usd">26783000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-9887FA16D802B72459B0FA5BD519BE86" unitRef="usd">26780000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
	<us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-67303E6E5C896BFDC04FFA5BD50C0F01" unitRef="usd">3000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
	<us-gaap:StockOptionPlanExpense contextRef="FD2016Q4YTD" decimals="-3" id="Fact-D1D8231C047A44318B85FA5BD47631B8" unitRef="usd">20558000</us-gaap:StockOptionPlanExpense>
	<us-gaap:StockOptionPlanExpense contextRef="FD2017Q4YTD" decimals="-3" id="Fact-6DF9C006F6B8D480E0D8FA5BD479513F" unitRef="usd">31942000</us-gaap:StockOptionPlanExpense>
	<us-gaap:StockOptionPlanExpense contextRef="FD2018Q4YTD" decimals="-3" id="Fact-6ACBDB58B4A351CFD3F2FA5BD46A68D7" unitRef="usd">41090000</us-gaap:StockOptionPlanExpense>
	<us-gaap:StockRepurchaseProgramAuthorizedAmount1 contextRef="FI2018Q3_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member" decimals="INF" id="Fact-086A133B9DA5B87D9D1477E692D35C8A" unitRef="usd">200000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
	<us-gaap:StockRepurchaseProgramAuthorizedAmount1 contextRef="FI2018Q4_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" decimals="0" id="Fact-C3D99D7E5CD695064A53FA5BD467C1BB" unitRef="usd">191378000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
	<us-gaap:StockRepurchaseProgramAuthorizedAmount1 contextRef="I2017Q2Apr12_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" decimals="INF" id="Fact-1AAF371D3CA944C30EC2FA5BD46646EA" unitRef="usd">100000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
	<us-gaap:StockRepurchaseProgramAuthorizedAmount1 contextRef="I2018Q1Feb.28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member" decimals="INF" id="Fact-D1B6D67C0AEB7E2A2B82FA5BD464AE05" unitRef="usd">150000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
	<us-gaap:StockRepurchasedDuringPeriodShares contextRef="D2018Q1Feb.1-28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" decimals="INF" id="Fact-03E2AC4469415E44ABEEFA5BD46CAC15" unitRef="shares">3174000</us-gaap:StockRepurchasedDuringPeriodShares>
	<us-gaap:StockRepurchasedDuringPeriodShares contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-0C555358E654D8980463FA5BD461D3C9" unitRef="shares">1788000</us-gaap:StockRepurchasedDuringPeriodShares>
	<us-gaap:StockRepurchasedDuringPeriodShares contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-D3D7C6EB844A570C2767FA5BD4CF2A7D" unitRef="shares">2533000</us-gaap:StockRepurchasedDuringPeriodShares>
	<us-gaap:StockRepurchasedDuringPeriodShares contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member" decimals="INF" id="Fact-87A1F447AF9FABA109F2FA5BD46DE5B5" unitRef="shares">803000</us-gaap:StockRepurchasedDuringPeriodShares>
	<us-gaap:StockRepurchasedDuringPeriodShares contextRef="FD2018Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" decimals="INF" id="Fact-D95AA909949C67E420CF77EB6D405547" unitRef="shares">203000</us-gaap:StockRepurchasedDuringPeriodShares>
	<us-gaap:StockRepurchasedDuringPeriodShares contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-AF53F9CC4FCE66DA143EFA5BD4CA3C95" unitRef="shares">4180000</us-gaap:StockRepurchasedDuringPeriodShares>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="D2018Q1Feb.1-28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" decimals="0" id="Fact-1B6FCC984CDC14F0AABCFA5BD46EAB0D" unitRef="usd">150000000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2016Q4YTD" decimals="-3" id="Fact-4FA72E2828BD8E2C3E14FA5BD4C4B2FF" unitRef="usd">47149000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-E7C46CFFAFFD852D90CBFA5BD5111D8A" unitRef="usd">4000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2016Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-177206DD8FB0BE6CC498FA5BD50F67EA" unitRef="usd">47145000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2017Q4YTD" decimals="-3" id="Fact-37ED2110C02C529B83FEFA5BD4C21504" unitRef="usd">123715000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-F10D1188AD681C424413FA5BD44002A2" unitRef="usd">5000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-6FC88E83DDAB1735E91DFA5BD4D87DF7" unitRef="usd">123710000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member" decimals="0" id="Fact-30D10F7BD13680DC715EFA5BD469344E" unitRef="usd">45200000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2018Q4YTD" decimals="-3" id="Fact-B484131FD4A91E1BB714FA5BD4CA20A1" unitRef="usd">203822000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2018Q4YTD" decimals="0" id="Fact-5FB610B2D545AEAC201FFA5BD46A2A81" unitRef="usd">203822000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2018Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" decimals="0" id="Fact-EC9E649550535BC57C1477EBC3F8CBF1" unitRef="usd">8622000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-6E6B8FC5864266F2272AFA5BD4BE90CF" unitRef="usd">8000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockRepurchasedDuringPeriodValue contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-4A3C176617D68CCA35DEFA5BD443D572" unitRef="usd">203814000</us-gaap:StockRepurchasedDuringPeriodValue>
	<us-gaap:StockholdersEquity contextRef="FI2015Q4" decimals="-3" id="Fact-087F73B789340413FD70FA5BD4CCED04" unitRef="usd">832331000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2015Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-EBCF03D4B66A6BBB3C66FA5BD45A9B5F" unitRef="usd">-52124000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2015Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-F6AEF83F58BB81D0D8E4FA5BD519AF13" unitRef="usd">310829000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2015Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-F35B4785DF5A96CCAAFCFA5BD4D5B9E7" unitRef="usd">340000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2015Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-565D086393AE30326FF0FA5BD5060742" unitRef="usd">573286000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2016Q4" decimals="-3" id="Fact-69AE4C0828169F427425FA5BD5185CEB" unitRef="usd">963385000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-EB0C3EF0AE0A6625AB76FA5BD517C452" unitRef="usd">-56428000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-1BDF6A1821895517C038FA5BD4CEBC07" unitRef="usd">374847000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-29519855013B79A01D12FA5BD508C5E7" unitRef="usd">344000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-F0F695DBBA1697C9757DFA5BD4CB2E8C" unitRef="usd">644622000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2017Q4" decimals="-3" id="Fact-C0721C97AAB892E21713FA5BD503243D" unitRef="usd">1095673000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-86A041B8A69DC11D38E7FA5BD4DA32F1" unitRef="usd">-34599000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-0BD558553B851884A6D9FA5BD45879DA" unitRef="usd">461338000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-5760708FFD1E9B8E7792FA5BD4CCC33C" unitRef="usd">347000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-49E8B6322A7BEB5C7314FA5BD4CF7DB7" unitRef="usd">668587000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2018Q4" decimals="-3" id="Fact-7DD91AAFB3A31298E374FA5BD4F0072D" unitRef="usd">1135263000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="Fact-1A46BE4A2B346BAF70F0FA5BD4582814" unitRef="usd">-40501000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" decimals="-3" id="Fact-8737B491D30EDC39A268FA5BD4C8590E" unitRef="usd">529208000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" decimals="-3" id="Fact-9C0415CAD0A27DECB4F2FA5BD4C6C5A5" unitRef="usd">342000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquity contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" decimals="-3" id="Fact-782FF730B9FA169451CAFA5BD4D0BB93" unitRef="usd">646214000</us-gaap:StockholdersEquity>
	<us-gaap:StockholdersEquityNoteStockSplitConversionRatio1 contextRef="D2017Q4SD" decimals="INF" id="Fact-40DF7F75CEF22D566271FA5BD468386C" unitRef="number">2</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
	<us-gaap:StockholdersEquityNoteStockSplitConversionRatio1 contextRef="FD2017Q4QTD" decimals="INF" id="Fact-A590E797B3FF97DEF273E37623136177" unitRef="number">2</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
	<us-gaap:StockholdersEquityNoteStockSplitConversionRatio1 contextRef="FD2017Q4YTD" decimals="INF" id="Fact-D02F0BBF6009752BCA83E823A4A40A9E" unitRef="number">2</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
	<us-gaap:UnbilledReceivablesCurrent contextRef="FI2017Q4" decimals="-3" id="Fact-0F6352B00AE37969C022FA5BD5022F37" unitRef="usd">7454000</us-gaap:UnbilledReceivablesCurrent>
	<us-gaap:UnbilledReceivablesCurrent contextRef="FI2018Q4" decimals="-3" id="Fact-0C5BCF9E07D083B34D00FA5BD4F1E0E7" unitRef="usd">8312000</us-gaap:UnbilledReceivablesCurrent>
	<us-gaap:UnrecognizedTaxBenefits contextRef="FI2016Q4" decimals="-3" id="Fact-926024F5DB5F73725565FA5BD48347D1" unitRef="usd">5719000</us-gaap:UnrecognizedTaxBenefits>
	<us-gaap:UnrecognizedTaxBenefits contextRef="FI2017Q4" decimals="-3" id="Fact-9F2DC01ED10C37C2F683FA5BD48807A1" unitRef="usd">6749000</us-gaap:UnrecognizedTaxBenefits>
	<us-gaap:UnrecognizedTaxBenefits contextRef="FI2018Q4" decimals="-3" id="Fact-4EE0225D113B1B3C612FFA5BD489B438" unitRef="usd">7294000</us-gaap:UnrecognizedTaxBenefits>
	<us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="FD2017Q4YTD" decimals="-3" id="Fact-453B2B1F93B8EE83A80BFA5BD48DEB06" unitRef="usd">56000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
	<us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities contextRef="FD2017Q4YTD" decimals="-3" id="Fact-AFDB16489E1B31A18102FA5BD48963E1" unitRef="usd">116000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
	<us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="FI2017Q4" decimals="0" id="Fact-F95A66797AADE801B660FA5BD47FDF2A" unitRef="usd">767000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
	<us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="FI2018Q4" decimals="0" id="Fact-49264A1584C769F2DEBAFA5BD48245BB" unitRef="usd">840000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
	<us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="FD2016Q4YTD" decimals="0" id="Fact-C528FFE399459FD65442FA5BD4C51BF6" unitRef="usd">92000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
	<us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="FD2017Q4YTD" decimals="0" id="Fact-61DF285C1078364E1B8BFA5BD4C263CD" unitRef="usd">71000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
	<us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="FD2018Q4YTD" decimals="0" id="Fact-B8BF3C697FF5FC9B0F88FA5BD4865C23" unitRef="usd">91000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
	<us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="FD2017Q4YTD" decimals="-3" id="Fact-2C821A643F2D5B69D50CFA5BD48FD62C" unitRef="usd">1993000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
	<us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="FD2018Q4YTD" decimals="-3" id="Fact-B50F5644F894B2102418FA5BD49732AE" unitRef="usd">1499000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
	<us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease contextRef="FD2018Q4YTD" decimals="-3" id="Fact-DACE273266F561E4ECE0FA5BD482E314" unitRef="usd">69000</us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease>
	<us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="FD2017Q4YTD" decimals="-3" id="Fact-BA4A16715883A0171515FA5BD49A98DE" unitRef="usd">791000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
	<us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="FD2018Q4YTD" decimals="-3" id="Fact-6276507B2B6F0F255B5DFA5BD483175B" unitRef="usd">1023000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
	<us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="FD2016Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-64AF9E2D878B440EC0FDFA5BD4B84337" unitRef="usd">-15000</us-gaap:ValuationAllowancesAndReservesAdjustments>
	<us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="FD2016Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-DC59D04411D4324D20E0FA5BD4AF72BE" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
	<us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-4857F718ED1DFF5D98B2FA5BD49B8345" unitRef="usd">87000</us-gaap:ValuationAllowancesAndReservesAdjustments>
	<us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-D1B4AE0C86C3B0D5B5D6FA5BD4AC056E" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
	<us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-0279255F2F614B31A226FA5BD49F2457" unitRef="usd">-43000</us-gaap:ValuationAllowancesAndReservesAdjustments>
	<us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-522F765112E413982165FA5BD48E175E" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2015Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-287C8B24A49A70C68316FA5BD489C39F" unitRef="usd">736000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2015Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-6AF738D19CDAEF69FBDDFA5BD4A0C61A" unitRef="usd">3259000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-36C20D0F41DB44B86112FA5BD4C0C3F8" unitRef="usd">873000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-E238F7A4DA086D788323FA5BD48AA591" unitRef="usd">4116000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2017Q4" decimals="-3" id="Fact-2696EE8DA707D16E51BFFA5BD4C15840" unitRef="usd">1568000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-792A4529E887A4C82F1DFA5BD4C3F77E" unitRef="usd">1568000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-193F4ABF4B4C06BCEF45FA5BD49A73F7" unitRef="usd">5309000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2018Q4" decimals="-3" id="Fact-D50E3793DD2D9E6AB7CEFA5BD4C582E5" unitRef="usd">1646000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-4FE560B14F79E675EFFDFA5BD4C531AD" unitRef="usd">1646000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesBalance contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-7088E941A10A823C4E4AFA5BD4A28BC3" unitRef="usd">6112000</us-gaap:ValuationAllowancesAndReservesBalance>
	<us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="FD2016Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-449668D8333059E71799FA5BD4A17BE4" unitRef="usd">216000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
	<us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="FD2016Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-443EFEC378892026D78EFA5BD4C9B8E6" unitRef="usd">857000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
	<us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-BF0973456A3C0D75F154FA5BD4B8DD17" unitRef="usd">724000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
	<us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-8D53E9D243EFCE042561FA5BD4968BF5" unitRef="usd">1193000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
	<us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-23B474679291D62C4C16FA5BD4DC5304" unitRef="usd">464000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
	<us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-8BFC05EA9F3A21445B90FA5BD49E1582" unitRef="usd">803000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
	<us-gaap:ValuationAllowancesAndReservesDeductions contextRef="FD2016Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-591979F9EF28CD3D5A1CFA5BD4B9AD8B" unitRef="usd">64000</us-gaap:ValuationAllowancesAndReservesDeductions>
	<us-gaap:ValuationAllowancesAndReservesDeductions contextRef="FD2016Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-536DA0B3B02288E7F80AFA5BD4B6A6FD" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
	<us-gaap:ValuationAllowancesAndReservesDeductions contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-06951BFD07A5B39A3585FA5BD4C30546" unitRef="usd">116000</us-gaap:ValuationAllowancesAndReservesDeductions>
	<us-gaap:ValuationAllowancesAndReservesDeductions contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-6234F3409E994A3382C4FA5BD4B54335" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
	<us-gaap:ValuationAllowancesAndReservesDeductions contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" decimals="-3" id="Fact-7D78C6490AB81069C7BFFA5BD49D4C1D" unitRef="usd">343000</us-gaap:ValuationAllowancesAndReservesDeductions>
	<us-gaap:ValuationAllowancesAndReservesDeductions contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" decimals="-3" id="Fact-E0AA9E93DAA2EF44E2C5FA5BD49C40D4" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
	<us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="FD2016Q4YTD" decimals="-3" id="Fact-5C059B4BAA3DE07FD76DFA5BD4DABA9E" unitRef="shares">3468000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
	<us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="FD2017Q4YTD" decimals="-3" id="Fact-83317B11169858E6A4AFFA5BD4CE6DC3" unitRef="shares">6264000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
	<us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="FD2018Q4YTD" decimals="-3" id="Fact-3BEF991DA93396F07D6DFA5BD4CFAE76" unitRef="shares">5073000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
	<us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="FD2016Q4YTD" decimals="-3" id="Fact-0726B1B57E61A9844AFBFA5BD44FEB43" unitRef="shares">174144000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
	<us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="FD2017Q4YTD" decimals="-3" id="Fact-EDE95213565180B870D3FA5BD4402DEF" unitRef="shares">179551000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
	<us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="FD2018Q4YTD" decimals="-3" id="Fact-A36A0E55CDFBD880BE68FA5BD459485D" unitRef="shares">177406000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
	<us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="FD2016Q4YTD" decimals="-3" id="Fact-646B2CE368F9E7A6DDC4FA5BD51AACA5" unitRef="shares">170676000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
	<us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="FD2017Q4YTD" decimals="-3" id="Fact-442805F8A3F3DEAC0A93FA5BD519674F" unitRef="shares">173287000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
	<us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="FD2018Q4YTD" decimals="-3" id="Fact-ACD79BFC71D9BBC75E5DFA5BD44510C3" unitRef="shares">172333000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
	<cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock contextRef="FD2018Q4YTD" id="Fact-DFFBD8E9945FCC6B3A60FA5BD4779EF2">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash, cash equivalents, and investments consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:66%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;104,655&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;97,951&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Money market instruments&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,557&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,631&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash and cash equivalents&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;108,212&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;106,582&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;198,477&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;150,371&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;137,871&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;47,395&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;78,407&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;59,203&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;8,101&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;21,579&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,805&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;10,608&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Short-term investments&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;427,348&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;297,961&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;162,566&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&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:3px double #000000;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;296,014&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;53,631&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;71,727&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;32,760&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;23,459&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,316&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,147&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;14,890&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;845&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,204&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-term investments&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;262,039&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;423,441&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;797,599&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;827,984&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock>
	<cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-4CB6BD4F1F08148A572CFA5BD44692DF">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Concentrations of Risk&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock>
	<cgnx:IndemnificationProvisionsTextBlock contextRef="FD2018Q4YTD" id="Fact-A43F49ECE5E90511075AFA5BD4B77F59">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Indemnification Provisions&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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 Company&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Under the terms of the Company&amp;#8217;s sale of its Surface Inspection Systems Division (SISD) to AMETEK, Inc., the Company agreed to retain certain liabilities in connection with its business dealings occurring prior to the transaction closing date of July 6, 2015, and to indemnify AMETEK, Inc. in connection with these retained liabilities and for any breach of the representations and warranties made by the Company to AMETEK, Inc. in connection with the sale agreement itself, as is usual and customary in such transactions.  A binding arbitration was concluded in 2016 with respect to certain product performance claims made by an SISD customer, for which the Company remained responsible under the indemnity provisions of the sale transaction.  In that proceeding, the tribunal ordered the Company to pay the customer approximately &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$326,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, primarily representing a refund of the product purchase price.  The tribunal also ordered the customer to pay the Company approximately &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$45,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, primarily representing reimbursement of legal fees.  The net settlement of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$281,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; was recorded in discontinued operations in 2016.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</cgnx:IndemnificationProvisionsTextBlock>
	<cgnx:NatureOfOperationsPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-ACD2E45D8D2A8FC533DAFA5BD4462FA7">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Nature of Operations&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 tasks, primarily in manufacturing processes, where vision is required.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</cgnx:NatureOfOperationsPolicyTextBlock>
	<cgnx:ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock contextRef="FD2018Q4YTD" id="Fact-18BE3FA0E15D73FF0B10FA5BD457B4DE">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Rental income and related expenses are included in &amp;#8220;Other income (expense)&amp;#8221; on the Consolidated Statements of Operations.  Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:3%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&amp;#160;31,&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1,228&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</cgnx:ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock>
	<srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-58C1DA1CD1650454EF52FA5BD4A91104">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;SCHEDULE II &amp;#8211; VALUATION AND QUALIFYING ACCOUNTS&lt;/font&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="25" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:28%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:4%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:4%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Additions&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Description&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Balance&amp;#160;at&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Beginning&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;of Period&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Charged&amp;#160;to&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Costs and&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Charged&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;to Other&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Accounts&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Deductions&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Other&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Balance&amp;#160;at&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;End of&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Period&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="23" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;(In thousands)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Reserve&amp;#160;for&amp;#160;Uncollectible Accounts Receivable and Sales Returns:&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,568&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;464&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(343&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(a)&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(43&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(b)&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,646&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;873&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;724&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(116&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(a)&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;87&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(b)&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,568&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;736&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;216&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(64&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(a)&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(15&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(b)&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;873&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred Tax Valuation Allowance:&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,309&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;803&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,112&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,116&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,193&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,309&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,259&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;857&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,116&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top" rowspan="1" colspan="1"&gt;&lt;div style="line-height:120%;font-size:10pt;padding-left:0px;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(a)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;" rowspan="1" colspan="1"&gt;&lt;div style="line-height:120%;text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Specific write-offs&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman; font-size:10pt;"&gt;&lt;tr&gt;&lt;td style="width:48px;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top" rowspan="1" colspan="1"&gt;&lt;div style="line-height:120%;font-size:10pt;padding-left:0px;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(b)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;" rowspan="1" colspan="1"&gt;&lt;div style="line-height:120%;text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;F&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;oreign currency exchange rate changes&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock>
	<us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-F09679148145D3B5991EFA5BD4D80093">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Accrued Expenses&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:65%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Salaries, commissions, and payroll taxes&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;11,039&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,944&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Company bonuses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;9,134&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,721&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Vacation&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,507&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,479&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign retirement obligations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,816&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,260&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Warranty obligations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,743&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,701&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Acquisition deferred and contingent liabilities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;431&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;23,550&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;24,122&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;60,220&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;68,249&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The changes in the warranty obligation were as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:16%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,335&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Provisions for warranties issued during the period&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,843&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fulfillment of warranty obligations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(3,109&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;632&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,701&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Provisions for warranties issued during the period&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,184&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fulfillment of warranty obligations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(4,024&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(118&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,743&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
	<us-gaap:AdvertisingCostsPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-5D6FD1424D4D1C7A83FBFA5BD44AE72D">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Advertising Costs&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Advertising costs are expensed as incurred and totaled &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,662,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,679,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,674,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:AdvertisingCostsPolicyTextBlock>
	<us-gaap:BusinessCombinationDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-B8B78CED80A1169F060FFA5BD4AAD59F">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Acquisitions&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company completed a total of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;six&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; business acquisitions in 2017 and 2016.  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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;Transaction costs were immaterial and were expensed as incurred.&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;GVi Ventures, Inc.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$5,368,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; included cash payment of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$4,069,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and contingent consideration valued at &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,299,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In 2017, the Company recorded a &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$282,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; expense representing a fair value adjustment in other expense, which increased the liability amount to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,581,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2017.  In 2018, the Company paid $&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and recorded a &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,065,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; expense representing a fair value adjustment in other expense, which increased the liability amount to $&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,646,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2018.  The undiscounted potential outcomes related to future contingent consideration range from &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$0&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to $&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,500,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; based upon certain revenue levels over the next &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;four years&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;423&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;120&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(152&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(10&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;910&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,600&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,476&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,368&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;Sheet.  The customer relationships are being amort&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ized to selling, general, and administrative e&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;xpenses over&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;eight&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;years, and the completed technologies are being amortized to cost of revenue over&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;five&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;years, both on a straigh&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;t-line basis.  The portion of the acquired goodwill deductible for tax purposes is &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$443,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;ViDi Systems S.A.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$23,015,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; included cash payment of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$20,019,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, with the remaining &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$2,996,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;146&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;425&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;129&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;40&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax asset&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;620&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(98&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(716&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax liability&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,008&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreement&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;370&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,774&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,333&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;23,015&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 will be amortized to research, development and engineering expenses over &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;three&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, and the completed technology will be amortized to cost of revenue over &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;six&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, both on a straight-line basis.  The portion of the acquired goodwill deductible for tax purposes is &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$5,112,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Webscan, Inc. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;On December 9, 2016, the Company acquired selected assets and assumed selected liabilities of Webscan, Inc., a privately-held U.S.-based ID provider of barcode verifiers.  The total purchase price of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$3,176,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; included &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$3,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in cash paid upon closing and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$176,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in cash paid in January 2017 as a working capital adjustment.  There are no contingent payments.  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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 individuals including software engineers that are expected to help the Company accelerate the development of future ID products. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;504&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;296&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;680&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;840&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;925&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(77&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,176&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;Sheet.  The customer relationships are being amort&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ized to selling, general, and administrative e&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;xpenses on a straigh&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;t-line basis &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;over&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;seven&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;years, and the completed technologies are being amortized to cost of revenue on a straigh&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;t-line basis over &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;five&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.  The portion of the acquired goodwill deductible for tax purposes is &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$287,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Chiaro Technologies LLC&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;On November 30, 2016, the Company acquired selected assets and assumed selected liabilities of Chiaro Technologies LLC, a privately-held U.S.-based 3D vision company.  The total purchase price of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$4,149,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; included cash payment of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$3,538,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and contingent consideration valued at &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$611,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In 2017, the Company recorded a &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$15,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; expense representing a fair value adjustment in other expense, which increased the liability amount to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$626,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2017.  In 2018, the Company recorded a &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$282,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; expense representing a fair value adjustment in other expense, which increased the liability amount to $&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;908,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2018.  The undiscounted potential outcomes related to the contingent consideration range from &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$0&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to $&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,250,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; based upon certain milestone revenue levels to be met in 2019 and paid in early 2020. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 accelerate the development of future 3D vision products. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,350&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,911&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(115&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,149&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The completed technologies are included in "Intangible assets" on the Consolidated Balance &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;Sheet and are being amortized to cost of revenue on a straigh&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;t-line basis over &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;seven&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.  The portion of the acquired goodwill deductible for tax purposes is &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$902,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;EnShape GmbH&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;On October 27, 2016, the Company acquired all of the outstanding shares of EnShape GmbH, a privately-held 3D sensor provider based in Germany.  The total purchase price of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$7,901,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; included &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$5,395,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in cash paid upon closing, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,362,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of contingent cash payments based upon the completion of certain tasks that was paid in 2017, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,144,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of deferred cash payments as a holdback for potential indemnification claims that was paid in 2018.  The Company also entered into special incentive payments tied to employment, none of which are material, that are being recorded as compensation expense. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 help the Company accelerate the development of  future 3D vision products. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;167&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;79&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,896&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;44&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;447&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,089&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,732&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(6&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(209&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued income taxes&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(2,342&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,901&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;Sheet.  The customer relationships are being amort&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ized to selling, general, and administrative e&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;xpenses, and the completed technologies are being amortized to cost of revenue, both on a straigh&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;t-line basis over &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;seven&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.  The portion of the acquired goodwill deductible for tax purposes is &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$328,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;AQSense, S.L.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;On August 30, 2016, the Company acquired selected assets and assumed selected liabilities of AQSense, S.L., a privately-held 3D vision software provider based in Spain.  The total purchase price of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$2,519,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; was paid in cash and there are no contingent payments. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 help the Company accelerate the development of  future 3D vision products. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;168&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;598&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;384&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,383&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(14&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,519&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The completed technologies are included in "Intangible assets" on the Consolidated Balance Sheet and they are being amortized to cost of revenue on a straight-line basis over &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;five&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.  The acquired goodwill is not deductible for tax purposes. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In 2017, the Company determined that the carrying value of the customer relationships was impaired and reduced this value to zero.  The impairment charge was included in selling, general, and administrative expenses on the Consolidated Statements of Operations.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
	<us-gaap:BusinessCombinationsPolicy contextRef="FD2018Q4YTD" id="Fact-D3D203123D58D3BDD99CE3926811DC17">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Business Combinations&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 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.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:BusinessCombinationsPolicy>
	<us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-3F6B494EDB1BAC4FCA41FA5BD4A8D9D4">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Cash, Cash Equivalents, and Investments&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Money market instruments and debt securities  with original maturities of three months or less are classified as cash equivalents and are stated at amortized cost.  Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments, as well as equity securities that the Company intends to sell within one year.  Debt securities with remaining maturities greater than one year are classified as long-term investments.  It is the Company&amp;#8217;s policy to invest in debt securities with effective maturities that do not exceed &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ten&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#8217; equity as other comprehensive income (loss).  Equity securities that are held for short periods of time with the intention of selling them in the near term are designated as trading and are reported at fair value, with unrealized gains and losses recorded in current operations.  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&amp;#8217;s limited partnership interest is accounted for using the cost method because the Company&amp;#8217;s investment is less than &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of the partnership and the Company has no influence over the partnership&amp;#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.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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)&amp;#160;the Company has the intent to sell the security, (ii)&amp;#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)&amp;#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)&amp;#160;or (ii)&amp;#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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
	<us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-94163A5F2C5B31DF6EA8FA5BD44F938F">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Commitments and Contingencies&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Commitments&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;December&amp;#160;31, 2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, the Company had outstanding purchase orders totaling &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$11,097,000&lt;/font&gt;&lt;font 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 2018.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company conducts certain of its operations in leased facilities.  These lease agreements expire at various dates through 2025 and are accounted for as operating leases.  Certain of these leases contain renewal options, retirement obligations, escalation clauses, rent holidays, and leasehold improvement incentives.  Annual rental expense totaled &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$8,186,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$6,738,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$6,090,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Future minimum rental payments under these agreements are as follows (in thousands):&lt;/font&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.41520467836257%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:3%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&amp;#160;31,&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,086&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,227&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,109&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,918&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2023&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,209&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Thereafter&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,198&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;22,747&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 agreements that will expire in 2022.  The Company had an additional tenant whose lease expired in November 2018.  Annual rental income totaled &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,116,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,474,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,911,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.  Rental income and related expenses are included in &amp;#8220;Other income (expense)&amp;#8221; on the Consolidated Statements of Operations.  Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:3%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&amp;#160;31,&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1,228&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Contingencies&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
	<us-gaap:CommitmentsAndContingenciesPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-43B13136EADEBE5E0107FA5BD4B7E401">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Contingencies&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesPolicyTextBlock>
	<us-gaap:ComprehensiveIncomePolicyPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-5D7F843C923A07C00F14FA5BD4424565">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Comprehensive Income&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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, as of December 31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and December 31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, consists of foreign currency translation adjustments of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$37,486,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$33,270,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively; net unrealized losses on available-for-sale investments of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,744,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$58,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,271,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in each year. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Amounts reclassified from accumulated other comprehensive income to investment income on the Consolidated Statements of Operations were net realized gains of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$501,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$829,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$191,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; for &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
	<us-gaap:ConsolidationPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-7AF633A12265BDF37A48FA5BD4495193">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Basis of Consolidation&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ConsolidationPolicyTextBlock>
	<us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="FD2018Q4YTD" id="Fact-2AB1B592C1250D18A4889649484588E7">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the deferred revenue and customer deposits activity (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:80%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:18%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,078&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Increases to deferred revenue and customer deposits&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;24,985&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Recognition of revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(23,195&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;552&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,420&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Increases to deferred revenue and customer deposits&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;63,231&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Recognition of revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(61,819&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(987&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;9,845&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
	<us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-3095B204BC05907BA09DFA5BD4886BE1">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Derivative Instruments&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#8217;s foreign currency risk management strategy is principally designed to mitigate the potential financial impact of changes in the value of transactions and balances denominated in foreign currencies resulting from changes in foreign currency exchange rates.  The Company enters into 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;45 days&lt;/font&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18 months&lt;/font&gt;&lt;font 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, 2018 and 2017. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company had the following outstanding forward contracts (in thousands): &lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December 31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Currency&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Notional Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;USD Equivalent&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Notional Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;USD Equivalent&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Euro&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;23,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;26,330&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Japanese Yen&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;380,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,459&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;455,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,049&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;British Pound&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,500&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,204&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,650&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,232&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Korean Won&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,125,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,808&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,825,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,708&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Hungarian Forint&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;750,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,685&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;545,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,110&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Taiwanese Dollar&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;55,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,807&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;37,725&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,278&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Canadian Dollar&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;990&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;726&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Singapore Dollar&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;700&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;514&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Swiss Franc&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,365&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,401&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Asset Derivatives&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Liability Derivatives&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" colspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Balance&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Sheet&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Location&amp;#160; &amp;#160;&amp;#160;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" colspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Balance&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Sheet&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Location&amp;#160; &amp;#160;&amp;#160;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Fair Value&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;December 31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;December 31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;December 31, 2017&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;16&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;106&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:18%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:19%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Asset Derivatives&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Liability Derivatives&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December&amp;#160;31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;December&amp;#160;31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December&amp;#160;31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;December&amp;#160;31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of recognized assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;16&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of recognized liabilities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;106&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts offset&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts offset&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net amount of assets presented&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;16&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net amount of liabilities presented&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;106&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:22%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:24%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&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;" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Location in Financial Statements&lt;/font&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;" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Designated as Hedging Instruments:&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) recorded in shareholders' equity (effective portion)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accumulated other comprehensive income (loss), net of tax&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;37&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(438&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Research, development, and engineering expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Selling, general, and administrative expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;27&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;41&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(398&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="14" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) recognized in current operations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign currency gain (loss)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(285&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;270&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(515&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the changes in accumulated other comprehensive income (loss), net of tax, related to derivative instruments (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:79%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:19%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;37&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net unrealized gain (loss) on cash flow hedges&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Reclassification of net realized (gain) loss on cash flow hedges into current operations&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(41&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock>
	<us-gaap:DerivativesPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-291C39070576169C3AB8FA5BD448DFEA">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Derivative Instruments&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 &amp;#8220;net&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:DerivativesPolicyTextBlock>
	<us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="FD2018Q4YTD" id="Fact-A52339A2869B6EF4C5AF960B76A1E350">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:61%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Americas&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;267,043&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;214,338&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;162,359&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Europe&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;307,965&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;328,826&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;230,311&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Greater China&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;126,109&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;108,738&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;66,179&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other Asia&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;105,221&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;114,181&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;70,666&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;806,338&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;766,083&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;529,515&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes disaggregated revenue information by revenue type (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:61%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Standard products and services&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;654,509&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;603,196&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;413,425&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Application-specific customer solutions&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;151,829&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;162,887&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;116,090&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;806,338&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;766,083&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;529,515&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
	<us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="FD2018Q4YTD" id="Fact-0DDB07DCE3A3ABEA11C4FA5BD4DDAF5A">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Stock-Based Compensation&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock Option Plans&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#8217;s share-based payments that result in compensation expense consist of stock option grants and restricted stock awards.  As of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, the Company had &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;19,578,752&lt;/font&gt;&lt;font 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&amp;#8217;s common stock at the grant date and generally vest over &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;four&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; or &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;five&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;years based upon continuous service and expire &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ten&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years from the grant date.  Vesting of restricted stock awards may be based on continuing employment and/or achievement of pre-established performance goals and objectives.  Vesting of performance-based restricted stock awards and time-based restricted stock awards must not be less than &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;one&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; year and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;three&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, respectively; however, awards with time-based vesting may become vested incrementally over such three-year period.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&amp;#8217;s stock option activity:&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:45%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Shares&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&amp;#160;thousands)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Weighted-&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Average&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Exercise&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Price&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Weighted-&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Average&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Remaining&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Contractual&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Term&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&amp;#160;years)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Aggregate&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Intrinsic Value&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&amp;#160;thousands)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Outstanding as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;12,726&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;25.24&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Granted&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,997&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;52.67&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Exercised&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,493&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;17.94&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Forfeited or expired&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(441&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;33.59&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Outstanding as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;13,789&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;31.73&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7.36&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;146,270&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Exercisable as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,556&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;20.94&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5.85&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;82,716&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Options vested or expected to vest as of&amp;#160;&lt;br clear="none"/&gt;&amp;#160;December 31, 2018 (1)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;12,499&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;30.60&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7.23&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;141,643&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:56%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year&amp;#160;Ended&amp;#160;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Risk-free rate&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2.9&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2.4&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1.7&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Expected dividend yield&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;0.35&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.40&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.83&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Expected volatility&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;39&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;41&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;41&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Expected term (in years)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5.4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5.4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5.6&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Risk-free rate&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Expected dividend yield&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Generally, the current dividend yield is calculated by annualizing the cash dividend declared by the Company&amp;#8217;s Board of Directors and dividing that result by the closing stock price on the grant date.&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Expected volatility&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The expected volatility was based upon a combination of historical volatility of&amp;#160;the Company&amp;#8217;s&amp;#160;common stock over the contractual term of the option and implied volatility for traded options of the Company&amp;#8217;s stock.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Expected term&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company stratifies its employee population into &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;two&lt;/font&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to all unvested options for senior management and a rate of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;12%&lt;/font&gt;&lt;font 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 an increase to compensation expense of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,283,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2018, a decrease to compensation expense of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$673,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and an increase to compensation expense of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$334,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The weighted-average grant-date fair value of stock options granted was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$20.84&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$15.59&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$6.33&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The total intrinsic value of stock options exercised was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$52,629,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$136,672,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$55,580,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;. The total fair value of stock options vested was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$31,106,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$21,519,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$18,114,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, total unrecognized compensation expense related to non-vested stock options was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$49,229,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, which is expected to be recognized over a weighted-average period of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1.56&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company's restricted stock activity: &lt;/font&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="11" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:46%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:16%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:16%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Shares                   (in thousands)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Weighted-Average       Grant Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Aggregate Intrinsic Value                  (in thousands)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Nonvested as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;20&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;17.03&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Granted&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Vested&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(20&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;17.03&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;993&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Forfeited or expired&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Nonvested as of December 31, 2018&lt;/font&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;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The fair values of restricted stock awards granted were determined based upon the market value of the Company's common stock at the time of grant.  The initial cost is then amortized over the period of vesting until the restrictions lapse.  These restricted shares were fully vested in 2018.  Participants are entitled to dividends on restricted stock awards, but only receive those amounts if the shares vest.  The sale or transfer of these shares is restricted during the vesting period.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The total stock-based compensation expense and the related income tax benefit recognized was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$41,090,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$7,317,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively, in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$31,942,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$10,473,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively, in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$20,558,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$6,747,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively, in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.  No compensation expense was capitalized in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, or &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cost of revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,447&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,881&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,052&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Research, development, and engineering&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;14,578&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,271&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Selling, general, and administrative&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;24,065&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;19,039&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,235&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;41,090&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;31,942&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;20,558&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
	<us-gaap:DiscontinuedOperationsPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-EF491EE955961E9E0622FA5BD49D502B">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Discontinued Operations&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;On July 6, 2015, the Company completed the sale of its Surface Inspection Systems Division (SISD) to AMETEK, Inc. (AMETEK).  A binding arbitration was concluded in 2016 with respect to certain product performance claims made by an SISD customer, for which the Company remained responsible under the indemnity provisions of the sale transaction.  In that proceeding, the tribunal ordered the Company to pay the customer approximately &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$326,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, primarily representing a refund of the product purchase price.  The tribunal also ordered the customer to pay the Company approximately &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$45,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, primarily representing reimbursement of legal fees.  The net settlement of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$281,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; was recorded in discontinued operations in 2016, along with &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$123,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of legal fees.  The tax benefit related to this expense was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$149,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, resulting in a net loss from discontinued operations of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$255,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:DiscontinuedOperationsPolicyTextBlock>
	<us-gaap:EarningsPerSharePolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-44D0D071A5CC3D6F842FFA5BD4AA0430">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Net Income Per Share&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
	<us-gaap:EarningsPerShareTextBlock contextRef="FD2018Q4YTD" id="Fact-57B3DA7D5F38F6176917FA5BD4CD29CC">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Weighted Average Shares&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Weighted-average shares were calculated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:56%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Basic weighted-average common shares outstanding&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;172,333&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;173,287&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;170,676&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Effect of dilutive stock options&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,073&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,264&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,468&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Diluted weighted-average common and common-equivalent shares outstanding&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;177,406&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;179,551&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;174,144&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Stock options to purchase &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,650,164&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,363,141&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,391,598&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; shares of common stock, on a weighted-average basis, were outstanding in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font 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.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
	<us-gaap:FairValueDisclosuresTextBlock contextRef="FD2018Q4YTD" id="Fact-65812A7A98DCFBB91EABFA5BD4B72FD3">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Fair Value Measurements&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font 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&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quoted&amp;#160;Prices&amp;#160;in&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Active Markets&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;for Identical&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Assets (Level&amp;#160;1)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Significant&amp;#160;Other&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Observable&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Inputs (Level&amp;#160;2)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unobservable Inputs                       (Level 3)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Assets:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Money market instruments&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,557&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;300,437&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;231,237&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;132,038&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;14,417&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,337&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Liabilities:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;106&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Contingent consideration liabilities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,544&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#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. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company did not record an other-than-temporary impairment of these financial assets in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, or &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,173&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Payment of EnShape contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,401&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Payment of Manatee contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(525&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Contingent consideration resulting from GVi acquisition&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,299&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Manatee contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(325&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Chiaro contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;15&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to GVi contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;282&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes &lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;39&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#cceeff;"&gt;Balance as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,557&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Manatee contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,350&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Chiaro contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;282&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to GVi contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,065&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Payment of GVi contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,000&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,554&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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. &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In 2017, the Company determined that the carrying value of the customer relationships &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;arising &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;from the AQSense acquisition was impaired and reduced this value to zero&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;,&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; re&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;sulting in&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; an impairment charge&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$469,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;  The Company did not record an impairment charge related to non-financial assets in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; or &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
	<us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock contextRef="FD2018Q4YTD" id="Fact-CF610FD04AA89497B29CFA5BD4B9A9F3">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,173&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Payment of EnShape contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,401&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Payment of Manatee contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(525&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Contingent consideration resulting from GVi acquisition&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,299&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Manatee contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(325&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Chiaro contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;15&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to GVi contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;282&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes &lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;39&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;background-color:#cceeff;"&gt;Balance as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,557&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Manatee contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,350&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Chiaro contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;282&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to GVi contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,065&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Payment of GVi contingent consideration&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,000&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,554&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock>
	<us-gaap:FairValueOfFinancialInstrumentsPolicy contextRef="FD2018Q4YTD" id="Fact-50E644358F37A44F035AFA5BD4A65BCB">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Fair Value Measurements&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
	<us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-AF66CC111E2FDDF7097BFA5BD4B63EED">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Foreign Currency Translation&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The financial statements of the Company&amp;#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&amp;#8217; equity as other comprehensive income (loss).&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
	<us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy contextRef="FD2018Q4YTD" id="Fact-00A435A99843A6D51854FA5BD448E5FA">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
	<us-gaap:GoodwillDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-332A46F122A54B6F625BFA5BD48E9972">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The changes in the carrying value of goodwill were as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;95,280&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Acquisition of ViDi Systems, S.A. &lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,333&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Acquisition of GVi Ventures, Inc.&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,476&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment to EnShape goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,881&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;113,208&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;113,208&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;For its &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; analysis of goodwill, management elected to perform a qualitative assessment&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.  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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:GoodwillDisclosureTextBlock>
	<us-gaap:IncomeTaxDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-4B9D82A55BB283D677B6FA5BD481BBF2">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Taxes&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Domestic income from continuing operations before taxes was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$39,042,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$30,345,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$23,939,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.  Foreign income from continuing operations before taxes was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$195,532,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$236,119,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$138,138,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense on continuing operations consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Current:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Federal&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;10,624&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,152&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;14,459&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;State&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(879&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,687&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(617&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,624&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,309&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;16,052&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;88,463&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;21,151&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Federal&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(1,271&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,569&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(3,031&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;State&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;554&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(639&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,066&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(28&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;359&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,058&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(745&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,289&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(3,023&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;15,307&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;89,752&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,128&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;A reconciliation of the U.S. federal statutory corporate tax rate to the Company&amp;#8217;s income tax expense on continuing operations, or effective tax rate, was as follows:&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:62%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year&amp;#160;Ended&amp;#160;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense at U.S. federal statutory corporate tax rate&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;21&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;35&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;35&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;%&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;State income taxes, net of federal benefit&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign tax rate differential&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(9&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(27&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(17&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Tax credit&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Discrete tax benefit related to employee stock option exercises&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(4&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(14&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(7&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense (benefit) related to 2017 Tax Act&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(3&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;36&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense related to write-down of deferred tax assets &lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other discrete tax events&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense on continuing operations&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;34&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;The Tax Act&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;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&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$12,523,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,240,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; f&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;rom&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; the write-down of its deferred tax assets primarily relating to guidance under the Tax Act regarding stock-based compensation.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$101,379,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$11,028,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, which resulted in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;a &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;revised estimate for the one-time transition tax of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$90,351,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; payable over &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;eight&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$3,843,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company will continue to gather and analyze information on historical unrepatriated foreign earnings and monitor state laws relating to this income to finalize both the federal and state tax impact.  The Tax Act limits certain deductions and these limitations may impact the value of existing deferred tax assets.  The Company will continue to review the impact of these limitations as regulatory guidance is issued.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;Other Discrete Tax Items&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The effective tax rate also included a decrease in tax expense of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$8,488,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2018, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$38,569,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2017, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$11,889,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2016 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In 2018, tax expense included a provision for state income taxes of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$620,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; 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 sufficient local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested resulting in the additional state income tax provision.  As of December 31, 2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; 2017, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$446,346,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$498,653,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively, of the Company&amp;#8217;s cash, cash equivalents, and investments were held by foreign subsidiaries and were primarily denominated in U.S. Dollars.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other discrete tax events resulted in a net decrease in tax expense of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,847,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2018 and a net decrease in tax expense of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$2,502,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2017, consisting primarily of i) the final true-up of the prior year's tax accrual upon filing the related tax returns and ii) the expiration of the statutes of limitations for certain reserves for income tax uncertainties. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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.  The statutory tax rate is 12.5% in Ireland and 25% in China, compared to the U.S. federal statutory corporate tax rate of 21%.  International rights to certain of the Company&amp;#8217;s intellectual property are held by a subsidiary whose legal jurisdiction does not tax this income, resulting in a foreign effective tax rate lower than the above mentioned statutory rates.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Interest and penalties included in income tax expense was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$91,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$71,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$92,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2018, 2017, and 2016, respectively.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ASU&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$5,961,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;Tax Reserves&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:16%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2016&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,719&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of decreases in unrecognized tax benefits as a result of tax positions taken in prior periods&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(56&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,993&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of decreases in unrecognized tax benefits relating to settlements with taxing authorities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(116&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(791&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,749&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;69&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,499&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,023&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,294&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#8217;s reserve for income taxes, including gross interest and penalties, was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$8,134,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2018, which included &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$7,106,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; classified as a non-current liability and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,028,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$7,516,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2017, which included &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$6,488,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; classified as a non-current liability and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,028,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$840,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$767,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December&amp;#160;31, 2018 and December&amp;#160;31, 2017, respectively.  If the Company&amp;#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 &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,200,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,300,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; over the next twelve months.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 2015 through 2018 remain open to examination by the Internal Revenue Service and various state taxing authorities.  The tax years 2014 through 2018 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In 2011, the Company finalized an Advanced Pricing Agreement (APA) with Japan that covers tax years 2006 through 2011, with a requested extension to 2012.  The Company has concluded negotiations for an APA between Japan and Ireland that covers tax years 2014 through 2018 with retroactive application to 2013. The Company is currently in negotiations to potentially extend this agreement through 2022.  The Company believes it is adequately reserved for these open years.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;Deferred Tax Assets and Liabilities&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred tax assets and liabilities consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:67%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-current deferred tax assets:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Stock-based compensation expense&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;13,818&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,664&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Federal and state tax credit carryforwards&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,395&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,707&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Bonuses, commissions, and other compensation&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,470&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,704&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventory and revenue related&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,233&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,415&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Depreciation&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,475&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,279&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,425&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,012&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross non-current deferred tax assets&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;34,816&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;32,781&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-current deferred tax liabilities:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Nondeductible intangible assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(44&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(87&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross non-current deferred tax liabilities&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(44&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(87&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Valuation allowance&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(6,112&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(5,309&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net non-current deferred tax assets&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;28,660&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;27,385&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-current deferred tax liabilities:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;&amp;#160;Other&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(962&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(312&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net non-current deferred tax liabilities&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(962&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(312&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In 2018, the Company recorded a valuation allowance of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$803,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$8,423,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of state research and development tax credit carryforwards, net of federal tax, as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, which will begin to expire in 2019.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash paid for income taxes totaled &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$41,430,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$11,802,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$20,748,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
	<us-gaap:IncomeTaxPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-22F976DE6590E45FC823FA5BD4AB0ABE">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Taxes&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#8217;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
	<us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-08C20851434315C11D5CFA5BD4590233">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Intangible Assets&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Amortized intangible assets consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Accumulated&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortization&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Net&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Distribution networks&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;38,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;38,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;13,687&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,619&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,068&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;8,607&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,716&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,891&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;370&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;216&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;154&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;60,724&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;50,611&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;10,113&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Accumulated&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortization&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Net&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Distribution networks&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;38,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;38,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,687&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,181&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,506&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,607&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,202&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,405&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;370&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;92&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;278&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;60,724&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;47,535&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,189&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&amp;#160;31,&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,701&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,185&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,691&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2023&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;989&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Thereafter&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;530&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;10,113&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
	<us-gaap:IntangibleAssetsFiniteLivedPolicy contextRef="FD2018Q4YTD" id="Fact-E7C90AF04C88CEA98D59FA5BD4A9D16B">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Intangible Assets&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Intangible assets are stated at cost and amortized over the assets&amp;#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 &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;eleven&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;twelve&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, of completed technologies from &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;five&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;seven&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, of customer relationships from &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;five&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;eight&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, and of non-compete agreements &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;three&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.  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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsFiniteLivedPolicy>
	<us-gaap:InventoryDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-4EE49C4196BF70DE728AFA5BD49D6C7A">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Inventories&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventories consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:71%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Raw materials&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;42,738&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;33,927&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Work-in-process&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,435&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,114&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Finished goods&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;37,109&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;31,882&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;83,282&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;67,923&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
	<us-gaap:InventoryPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-4B31526CDE0D2A50DF86FA5BD4AE9256">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Inventories&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryPolicyTextBlock>
	<us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock contextRef="FD2018Q4YTD" id="Fact-2ECD3BA2C80631A0EC21FA5BD476A826">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the effective maturity dates of the Company&amp;#8217;s available-for-sale investments as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/font&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="28" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:25%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:7%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:7%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:7%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:7%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;&amp;lt;1&amp;#160;Year&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;1-2&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2-3&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;3-4&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;4-5&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;5-7&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;137,871&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;81,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;56,459&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;20,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,126&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;300,437&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;198,477&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;32,760&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;231,237&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,407&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;27,665&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,715&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,004&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,416&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,831&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;132,038&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,101&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,316&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;14,417&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;845&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,337&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;427,348&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;149,507&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;64,174&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;36,985&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,542&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,831&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;689,387&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
	<us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock contextRef="FD2018Q4YTD" id="Fact-2A3FB2EA105D1E6A974AFA5BD478EC30">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Cash, Cash Equivalents, and Investments&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash, cash equivalents, and investments consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:66%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;104,655&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;97,951&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Money market instruments&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,557&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,631&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash and cash equivalents&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;108,212&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;106,582&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;198,477&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;150,371&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;137,871&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;47,395&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;78,407&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;59,203&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;8,101&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;21,579&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,805&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;10,608&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Short-term investments&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;427,348&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;297,961&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;162,566&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&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:3px double #000000;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;296,014&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;53,631&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;71,727&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;32,760&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;23,459&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,316&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,147&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;14,890&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;845&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,204&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-term investments&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;262,039&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;423,441&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;797,599&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;827,984&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#8217;s cash balance included foreign bank balances totaling &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$67,502,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$66,777,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills consist of debt securities issued by&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; the U.S. government; corporate bonds consist of debt securities issued by both domestic and foreign companies; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; 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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&amp;#8217;s available-for-sale investments as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:37%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortized&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Cost&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Unrealized&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gains&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Unrealized&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Losses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Fair Value&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Short-term:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;198,512&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;38&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(73&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;198,477&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;138,219&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;27&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(375&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;137,871&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,628&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;15&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(236&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,407&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,135&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(34&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,101&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-term:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;163,847&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;107&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,388&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;162,566&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;53,693&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;55&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(117&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;53,631&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;32,722&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;51&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;32,760&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,286&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,316&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,930&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(9&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;855&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(10&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;845&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;691,319&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;323&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(2,255&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;689,387&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&amp;#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:35%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized Loss&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Position For Less than&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;12 Months&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized Loss&lt;br clear="none"/&gt;Position For Greater than&lt;br clear="none"/&gt;12 Months&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Losses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;br clear="none"/&gt;Losses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;br clear="none"/&gt;Losses&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;145,596&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,268&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;99,886&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(495&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;245,482&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,763&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;114,836&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(73&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,850&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;128,686&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(86&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;47,762&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(91&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;44,585&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(262&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;92,347&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(353&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,609&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(30&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,101&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(34&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency Bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,920&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(9&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,920&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(9&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,302&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;845&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(10&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,147&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(10&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;318,908&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(1,445&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;163,775&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(810&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;482,683&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(2,255&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company recorded gross realized gains on the sale of debt securities totaling &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$669,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$929,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$292,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2016, and gross realized losses on the sale of debt securities totaling &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$168,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$100,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$101,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2016.  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&amp;#8217; equity as other comprehensive income (loss). &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the effective maturity dates of the Company&amp;#8217;s available-for-sale investments as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/font&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="28" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:25%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:7%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:7%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:7%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:7%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;&amp;lt;1&amp;#160;Year&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;1-2&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2-3&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;3-4&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;4-5&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;5-7&amp;#160;Years&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;137,871&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;81,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;56,459&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;20,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,126&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;300,437&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;198,477&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;32,760&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;231,237&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,407&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;27,665&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,715&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,004&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,416&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,831&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;132,038&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,101&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,316&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;14,417&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;845&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,337&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;427,348&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;149,507&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;64,174&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;36,985&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,542&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,831&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;689,387&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock>
	<us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock contextRef="FD2018Q4YTD" id="Fact-CF616046FAB56DC69C0AFA5BD50FFBE8">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt; New Pronouncements&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2016-02, 2018-11, and 2018-20, "Leases"&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ASU 2016-02 creates Topic 842, Leases.  The objective of this ASU is to increase transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet, and disclosing key information about leasing arrangements.  This ASU applies to any entity that enters into a lease, although lessees will see the most significant changes.  The main difference between prior GAAP and Topic 842 is the recognition of lease assets and lease liabilities on the balance sheet for those leases classified as operating leases under prior GAAP.  Topic 842 distinguishes between finance leases and operating leases, which are substantially similar to the classification criteria for distinguishing between capital leases and operating leases under prior GAAP.  For public companies, the guidance in ASU 2016-02 is effective for annual periods beginning after December 15, 2018, and interim periods within those fiscal years.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In July 2018, the Financial Accounting Standards Board issued ASU 2018-11 to amend ASU 2016-02 and provided an additional (and optional) transition method to adopt the new lease standard.  This transition method allows entities to apply the new lease standard at the adoption date and recognize a cumulative-effect adjustment to the opening balance of retained earnings in the period of adoption instead of using the original modified retrospective transition method of adoption which required the restatement of all prior-period financial statements.  Under this new transition method, the comparative periods in the financial statements will continue to be presented in accordance with prior GAAP.  Management will adopt the new lease standard on a prospective basis using this new transition method under ASU 2018-11.  In December 2018, the Financial Accounting Standards Board issued ASU 2018-20 to provide additional implementation guidance.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As of the date of this report, management has determined the scope of leases subject to the new accounting requirements, completed the implementation of a lease software package to assist with compliance, trained relevant employees, and finalized the lease accounting policy as well as the related business processes and internal controls.  Management expects the adoption of the new lease rule will result in the recognition of lease assets and lease liabilities of approximately &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$20,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; on the Consolidated Balance Sheet.  Management does not expect the adoption to have a significant impact on the Statement of Operations or Statement of Cash Flows.  Furthermore, the adoption of this rule will result in additional lease disclosures. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2016-13, "Financial Instruments - Measurement of Credit Losses"&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 (debt securities).&amp;#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&amp;#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.&amp;#160; The amendments in this ASU require that credit losses on available-for-sale debt securities 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.  For public companies, the guidance in ASU 2016-13 is effective for annual periods beginning after December 15, 2019, and interim periods within those fiscal years.&amp;#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.&amp;#160; Management does not expect ASU 2016-13 to have a material impact on the Company's financial statements and disclosures.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2017-08, "Receivables - Nonrefundable Fees and Other Costs - Premium Amortization on Purchased Callable Debt Securities"&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ASU 2017-08 applies to all reporting entities that hold investments in callable debt securities that have an amortized cost basis in excess of the amount that is repayable by the issuer at the earliest call date (that is, at a premium). The amendments in this ASU shorten the amortization period for certain callable debt securities held at a premium. Specifically, the amendments require the premium to be amortized to the earliest call date.  The amendments do not require an accounting change for securities held at a discount; the discount continues to be amortized to maturity.   Under current GAAP, premiums and discounts on callable debt securities generally are amortized to the maturity date. If that callable debt security is subsequently called, the entity records a loss equal to the unamortized premium.  The amendments in this ASU more closely align the amortization period of premiums and discounts to expectations incorporated in market pricing on the underlying securities.  For public companies, the amendments in ASU 2017-08 are effective for annual periods beginning after December 15, 2019, and interim reporting periods within fiscal years beginning after December 15, 2020.  This ASU should be applied on a modified retrospective basis through a cumulative-effect adjustment directly to retained earnings as of the beginning of the period of adoption, and, in the period of adoption, the entity is required to provide disclosures about the change in accounting principle.  Early adoption is permitted, including adoption in an interim period.  Management does not expect ASU 2017-08 to have a material impact on the Company's financial statements and disclosures.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2017-12, "Derivatives and Hedging - Targeted Improvements to Accounting for Hedging Activities"&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ASU 2017-12 applies to all reporting entities that elect to apply hedge accounting.  The hedge accounting requirements under current GAAP sometimes do not permit an entity to properly recognize the economic results of the hedging strategy in the financial statements, and they are difficult to understand and interpret.  The amendments in this ASU make certain targeted improvements to simplify the application of the hedge accounting guidance.  Also, they better align the risk management activities and financial reporting for hedging relationships through changes to both 1) the designation and measurement guidance for qualifying hedging relationships and 2) the presentation of hedge results.  For public companies, the amendments in ASU 2017-12 are effective for annual reporting periods beginning after December 15, 2018, and interim reporting periods within those fiscal years.  Early adoption is permitted including adoption in any interim period after issuance of the ASU.  All transition requirements and elections should be applied to hedging relationships existing on the date of adoption.  The entity should apply a cumulative-effect adjustment related to eliminating the separate measurement of ineffectiveness to accumulated other comprehensive income with a corresponding adjustment to the opening balance of retained earnings as of the beginning of the fiscal year that an entity adopts the amendments in this ASU.  The amended presentation and disclosure guidance is required only prospectively.  Management does not expect ASU 2017-12 to have a material impact on the Company's financial statements and disclosures.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2018-01, "Land Easement Practical Expedient for Transition to Topic 842"&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ASU 2018-01 applies to entities with land easements that exist or expired before an entity&amp;#8217;s adoption of Topic 842, provided that the entity does not account for those land easements as leases under Topic 840.  The amendments in this ASU permit an entity to elect an optional transition practical expedient to not evaluate under Topic 842 land easements that exist or expired before the entity&amp;#8217;s adoption of Topic 842 and that were not previously accounted for as leases under Topic 840.  An entity that elects this practical expedient should apply the practical expedient consistently to all of its existing or expired land easements that were not previously accounted for as leases under Topic 840.  Once an entity adopts Topic 842, it should apply that Topic prospectively to all new (or modified) land easements to determine whether the arrangement should be accounted for as a lease.  An entity that does not elect this practical expedient should evaluate all existing or expired land easements in connection with the adoption of the new lease requirements in Topic 842 to assess whether they meet the definition of a lease.  The amendments in this ASU affect the amendments in ASU 2016-02, which are not yet effective but may be early adopted.  The effective date and transition requirements for the amendments are the same as the effective date and transition requirements in ASU 2016-02, which is for annual periods beginning after December 15, 2018, and interim periods within those fiscal years.  Management does not expect ASU 2018-01 to have a material impact on the Company's financial statements and disclosures.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2018-02, "Income Statement - Reporting Comprehensive Income"&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ASU 2018-02 applies to entities required to apply the provisions of Topic 220, Income Statement - Reporting Comprehensive Income, and has items of other comprehensive income for which the related tax effects are presented in other comprehensive income as required by GAAP.  The amendments in this ASU allow a reclassification from accumulated other comprehensive income to retained earnings for stranded tax effects resulting from the Tax Cuts and Jobs Act of 2017 (the "Tax Act").  Consequently, the amendments eliminate the stranded tax effects resulting from the Tax Act and will improve the usefulness of information reported to financial statement users.  However, because the amendments only relate to the reclassification of the income tax effects of the Tax Act, the underlying guidance that requires the effect of a change in tax laws or rates to be included in income from continuing operations is not affected.  The amendments in this ASU also require certain disclosures about stranded tax effects.  The amendments in this ASU are effective for all entities for fiscal years beginning after December 15, 2018, and interim periods within those fiscal years.  Early adoption of the amendments in this ASU is permitted, including adoption in any interim period.  The amendments in this ASU should be applied either in the period of adoption or retrospectively to each period (or periods) in which the effect of the change in the U.S. federal corporate income tax rate in the Tax Act is recognized.  Management does not expect ASU 2018-02 to have a material impact on the Company's financial statements and disclosures. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2018-07, "Compensation - Stock Compensation - Improvements to Nonemployee Share-Based Payment Accounting"&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ASU 2018-07 applies to all entities that enter into share-based payment transactions for acquiring goods and services from nonemployees.  The amendments in this ASU expand the scope of Topic 718, Compensation - Stock Compensation, to include share-based payments transactions to nonemployees.  Changes to the accounting for nonemployee awards as a result of this ASU include: 1) equity-classified nonemployee share-based payment awards are measured at the grant date, instead of the previous requirement to remeasure the awards through the performance completion date, 2) for awards with performance conditions, compensation cost is recognized when the achievement of the performance condition is probable, rather than upon achievement, and 3) the current requirement to reassess the classification (equity or liability) for nonemployee awards upon vesting is eliminated.  This ASU clarifies that Topic 718 does not apply to financing transactions or awards granted to customers as part of a contract accounted for under Topic 606, Revenue from Contracts with Customers.  The amendments in this ASU are effective for public business entities for fiscal years beginning after December 15, 2018, and interim periods within those fiscal years.  An entity should only remeasure liability-classified awards that have not been settled by the date of adoption and equity-classified awards for which the measurement date has not been established through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption.  Management does not expect ASU 2018-07 to have a material impact on the Company's financial statements and disclosures.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 fiscal years beginning after December 15, 2019, and interim periods within those fiscal years, with early adoption permitted.  Management does not expect ASU 2018-15 to have a material impact on the Company's financial statement and disclosures.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
	<us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock contextRef="FD2018Q4YTD" id="Fact-154E410A763977214778FA5BD4DD7EE6">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company's restricted stock activity: &lt;/font&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="11" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:46%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:16%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:16%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Shares                   (in thousands)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Weighted-Average       Grant Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Aggregate Intrinsic Value                  (in thousands)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Nonvested as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;20&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;17.03&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Granted&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Vested&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(20&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;17.03&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;993&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Forfeited or expired&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Nonvested as of December 31, 2018&lt;/font&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;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock>
	<us-gaap:OffsettingAssetsTableTextBlock contextRef="FD2018Q4YTD" id="Fact-577DA06BC4A078D10F51FA5BD4899B93">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:18%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:19%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Asset Derivatives&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Liability Derivatives&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December&amp;#160;31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;December&amp;#160;31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December&amp;#160;31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;December&amp;#160;31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of recognized assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;16&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of recognized liabilities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;106&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts offset&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts offset&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net amount of assets presented&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;16&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net amount of liabilities presented&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;106&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:OffsettingAssetsTableTextBlock>
	<us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-88105CDF0C9E4D7D0F63FA5BD4BC67AF">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Employee Savings Plan&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;For the first ten months of 2018, under the Company&amp;#8217;s Employee Savings Plan, a defined contribution plan, U.S. employees, who had attained age &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;21&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and were not defined as highly compensated, could have contributed up to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;50%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of their pay on a pre-tax basis subject to the annual dollar limitations established by the Internal Revenue Service (IRS).  Highly compensated employees as defined by the IRS, could have contributed up to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;25%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of their pay on a pre-tax basis.  The Company matched &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;50%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of the first &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of pay an employee contributed.  Company contributions vested &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;20%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;40%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;60%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;100%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; after two, three, four, and five years of continuous employment with the Company, respectively.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;On November 1, 2018, the Company changed the custodian of the Employee Savings Plan which altered  the contribution rate and vesting period.  Commencing on that date, all U.S. employees, whether they are determined to be highly compensated or not, who have attained age &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;21&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; may contribute up to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;100&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;% of their pay on a pre-tax basis under the Company's Employee Savings Plan.  The Company still matches &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;50%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of the first &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of pay an employee contributes.  Company contributions vest &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;25%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;50%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;75%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;100%&lt;/font&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$2,540,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$2,030,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,712,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
	<us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-F3D28B35F1EE9B89C963FA5BD50F4425">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Property, Plant, and Equipment&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:71%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Land&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,951&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,951&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Buildings&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;24,533&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;24,589&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Building improvements&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;45,067&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;33,189&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Leasehold improvements&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;9,095&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,513&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Computer hardware and software&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;66,542&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;61,835&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Manufacturing test equipment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;27,378&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;21,312&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Furniture and fixtures&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,904&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,363&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;183,470&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;157,752&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Less: accumulated depreciation&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(92,074&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(79,704&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;91,396&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,048&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The cost of disposed property, plant, and equipment totaling &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$6,367,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;$6,327,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; was removed from both the asset and accumulated depreciation balances in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively.  Gains and losses on these disposals were immaterial in both periods.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Buildings include rental property with a cost basis of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$800,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$5,750,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively, and accumulated depreciation of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$234,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$3,069,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
	<us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-3395D2227799A8EEFDF8FA5BD44957F0">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Property, Plant, and Equipment&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#8217; estimated useful lives.  Buildings&amp;#8217; useful lives are &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;39&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, building improvements&amp;#8217; useful lives are &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ten&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;two&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ten&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.  Leasehold improvements are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases.  Maintenance and repairs are expensed when incurred; additions and improvements are capitalized.  Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
	<us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="FD2018Q4YTD" id="Fact-A3ADD78F5357B1DF73C9FA5BD50E8C44">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:71%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Land&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,951&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,951&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Buildings&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;24,533&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;24,589&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Building improvements&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;45,067&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;33,189&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Leasehold improvements&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;9,095&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,513&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Computer hardware and software&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;66,542&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;61,835&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Manufacturing test equipment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;27,378&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;21,312&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Furniture and fixtures&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,904&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,363&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;183,470&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;157,752&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Less: accumulated depreciation&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(92,074&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(79,704&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;91,396&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,048&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
	<us-gaap:QuarterlyFinancialInformationTextBlock contextRef="FD2018Q4YTD" id="Fact-D7393A7EC0BFC377E29FE773044E4C96">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quarter Ended&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;April 1,                        2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;July 1,                                 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;September 30,                           2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;br clear="none"/&gt;2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;(In thousands, except per share amounts)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;169,567&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;211,264&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;232,221&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;193,286&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Gross margin&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;129,369&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;157,095&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;173,361&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;140,461&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Operating income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;34,596&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;63,455&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;77,844&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;45,247&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Net income&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;37,217&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;56,196&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;80,436&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;45,418&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Basic net income per share&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.21&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.33&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.47&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.26&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Diluted net income per share&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.21&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.32&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.45&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.26&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quarter Ended&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;April 2,                        2017&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;July 2,                                 2017&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;October 1,                           2017&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;br clear="none"/&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;(In thousands, except per share amounts)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;139,039&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;178,080&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;266,042&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;182,922&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Gross margin&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;106,507&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;135,916&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;197,981&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;138,390&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Operating income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;37,216&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;60,021&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;110,849&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;50,775&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Net income (loss)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;45,471&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;56,495&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;102,493&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;(27,747&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Basic net income (loss) per share (1)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.26&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.33&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.59&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;(0.16&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Diluted net income (loss) per share (1) (2)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.25&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.32&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.57&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;(0.16&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;(1) Prior period results have been adjusted to reflect the &lt;/font&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;two&lt;/font&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;-for-one stock split effected in the form of a stock dividend which occurred in the quarter ended December 31, 2017.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;(2) As a result of the net loss recorded for the quarter ended December 31, 2017, potential common stock equivalents of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;7,145&lt;/font&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt; were not included in the calculation of diluted net loss per share for this quarter.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:QuarterlyFinancialInformationTextBlock>
	<us-gaap:ReceivablesPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-DDCFBA318A3944DF8781FA5BD445DECE">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounts Receivable&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ReceivablesPolicyTextBlock>
	<us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-6EE48CBE485D6128E774FA5BD4A56EEF">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Research and Development&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
	<us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="FD2018Q4YTD" id="Fact-5EA81FF72356B2DB80DB9606F0E5B0CF">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Revenue Recognition&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;On January 1, 2018, the Company adopted Accounting Standards Codification (ASC) 606, "Revenue from Contracts with Customers," using the full retrospective method to present all periods reported on a consistent basis.  Accordingly, prior-period results have been restated to apply the provisions of this ASC.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As a result of this adoption, revenue for software-only products sold as part of multiple-deliverable arrangements are no longer deferred when vendor-specific objective evidence of fair value does not exist for the undelivered elements of the arrangement.  This change results in earlier recognition of revenue.  In addition, certain of the Company&amp;#8217;s product accessory sales, which were reported on a net basis, are now reported on a gross basis as a result of applying the expanded guidance in the new standard related to principal versus agent considerations.  This change results in the Company reporting higher revenue and higher cost of revenue when these sales are reported on a gross basis, although the gross margin dollars do not change.  Furthermore, for arrangements that include customer-specified acceptance criteria, revenue is recognized when the Company can objectively determine that control has been transferred to the customer in accordance with the agreed-upon specifications in the contract, which may occur before formal customer acceptance.  This change primarily impacts revenue recognition for arrangements in the logistics industry where certain customer solutions include installed ID products and results in earlier recognition of revenue.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The adoption of the standard impacted our previously-reported results as follows (in thousands): &lt;/font&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="12" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Operations&lt;/font&gt;&lt;/div&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;Year Ended December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;747,950&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,133&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;766,083&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cost of revenue&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;168,698&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,591&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;187,289&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross margin&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;579,252&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(458&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;578,794&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Operating income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;259,319&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(458&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;258,861&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income before income tax expense&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;266,922&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(458&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;266,464&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense (benefit)&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;89,744&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;89,752&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;177,178&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(466&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;176,712&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="4" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net income per weighted-average common and common-equivalent share:&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Basic&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1.02&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1.02&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Diluted&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.99&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(0.01&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.98&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Operations&lt;/font&gt;&lt;/div&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;520,753&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,762&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;529,515&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cost of revenue&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;115,590&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;15,480&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;131,070&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross margin&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;405,163&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(6,718&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;398,445&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Operating income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;160,784&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(6,718&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;154,066&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income before income tax expense&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;168,795&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(6,718&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;162,077&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense (benefit)&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,968&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(840&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,128&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;149,572&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(5,878&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;143,694&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="4" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net income per weighted-average common and common-equivalent share:&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Basic&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.88&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(0.04&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.84&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Diluted&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.86&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(0.03&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.83&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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="12" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Balance Sheet&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30,800&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(117&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30,683&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued income taxes&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,391&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;112&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,503&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred revenue and customer deposits&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,969&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(549&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,420&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Retained earnings&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;668,267&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;320&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;668,587&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;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.609375%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Shareholders' Equity&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Retained Earnings&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;643,836&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;786&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;644,622&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;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.609375%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Shareholders' Equity&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;December 31, 2015&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Retained Earnings&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;566,622&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,664&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;573,286&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:61%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Americas&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;267,043&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;214,338&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;162,359&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Europe&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;307,965&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;328,826&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;230,311&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Greater China&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;126,109&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;108,738&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;66,179&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other Asia&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;105,221&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;114,181&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;70,666&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;806,338&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;766,083&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;529,515&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes disaggregated revenue information by revenue type (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:61%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Standard products and services&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;654,509&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;603,196&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;413,425&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Application-specific customer solutions&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;151,829&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;162,887&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;116,090&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;806,338&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;766,083&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;529,515&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Costs to Fulfill a Contract&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,514,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and $&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,230,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2018 and 2017, respectively. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounts Receivable, Contract Assets, and Contract Liabilities&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;the &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;year ended December 31, 2018 and 201&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.  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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the deferred revenue and customer deposits activity (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:80%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:18%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,078&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Increases to deferred revenue and customer deposits&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;24,985&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Recognition of revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(23,195&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;552&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,420&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Increases to deferred revenue and customer deposits&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;63,231&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Recognition of revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(61,819&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(987&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;9,845&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
	<us-gaap:RevenueRecognitionPolicyTextBlock contextRef="FD2018Q4YTD" id="Fact-9455CE4EB90AFB6BDFE2FA5BD4B661B3">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Revenue Recognition&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &amp;#8220;Revenue from Contracts with Customers.&amp;#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.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Identifying the Contract with the Customer&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Identifying the Performance Obligations in the Contract&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#8217;s promise to transfer the goods and are expensed when revenue is recognized.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Determining the Transaction Price&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Allocating the Transaction Price to the Performance Obligations&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Recognizing Revenue When (or As) the Performance Obligations are Satisfied&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;For the Company&amp;#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 &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;90&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; days from billing.  The Company's contracts have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on a contract and to expense sales commissions.  The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:RevenueRecognitionPolicyTextBlock>
	<us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="FD2018Q4YTD" id="Fact-CEBFA34A42002053896BFA5BD4D78574">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:65%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Salaries, commissions, and payroll taxes&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;11,039&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,944&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Company bonuses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;9,134&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,721&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Vacation&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,507&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,479&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign retirement obligations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,816&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,260&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Warranty obligations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,743&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,701&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Acquisition deferred and contingent liabilities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;431&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;23,550&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;24,122&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;60,220&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;68,249&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
	<us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock contextRef="FD2018Q4YTD" id="Fact-411C300F6D4C29C35101FA5BD478250E">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&amp;#8217;s available-for-sale investments as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:37%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortized&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Cost&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Unrealized&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gains&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Unrealized&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Losses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Fair Value&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Short-term:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;198,512&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;38&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(73&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;198,477&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;138,219&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;27&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(375&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;137,871&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,628&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;15&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(236&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,407&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,135&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(34&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,101&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-term:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;163,847&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;107&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,388&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;162,566&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;53,693&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;55&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(117&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;53,631&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;32,722&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;51&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;32,760&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,286&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,316&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,930&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(9&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;855&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(10&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;845&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;691,319&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;323&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(2,255&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;689,387&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock>
	<us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="FD2018Q4YTD" id="Fact-32F6F6889DCDDE3D8492FA5BD4836451">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense on continuing operations consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Current:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Federal&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;10,624&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;78,152&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;14,459&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;State&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(879&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,687&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(617&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,307&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,624&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,309&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;16,052&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;88,463&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;21,151&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Federal&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(1,271&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,569&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(3,031&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;State&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;554&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(639&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,066&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(28&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;359&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,058&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(745&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,289&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(3,023&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;15,307&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;89,752&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,128&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
	<us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="FD2018Q4YTD" id="Fact-D04E078344E97BCF34CDFA5BD46BEE3C">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred tax assets and liabilities consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:67%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-current deferred tax assets:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Stock-based compensation expense&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;13,818&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,664&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Federal and state tax credit carryforwards&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,395&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,707&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Bonuses, commissions, and other compensation&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,470&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,704&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventory and revenue related&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,233&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,415&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Depreciation&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,475&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,279&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,425&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,012&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross non-current deferred tax assets&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;34,816&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;32,781&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-current deferred tax liabilities:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Nondeductible intangible assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(44&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(87&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross non-current deferred tax liabilities&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(44&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(87&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Valuation allowance&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(6,112&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(5,309&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net non-current deferred tax assets&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;28,660&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;27,385&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-current deferred tax liabilities:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;&amp;#160;Other&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(962&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(312&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net non-current deferred tax liabilities&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(962&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(312&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
	<us-gaap:ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock contextRef="FD2018Q4YTD" id="Fact-8873226AAE1ED87CC522FA5BD489C905">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the changes in accumulated other comprehensive income (loss), net of tax, related to derivative instruments (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:79%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:19%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;37&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net unrealized gain (loss) on cash flow hedges&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Reclassification of net realized (gain) loss on cash flow hedges into current operations&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(41&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock>
	<us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock contextRef="FD2018Q4YTD" id="Fact-35C35CB0953468712626FA5BD48A0270">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:22%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:24%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&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;" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Location in Financial Statements&lt;/font&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;" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Designated as Hedging Instruments:&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) recorded in shareholders' equity (effective portion)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accumulated other comprehensive income (loss), net of tax&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;37&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(438&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Research, development, and engineering expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Selling, general, and administrative expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;27&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;41&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(398&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="14" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) recognized in current operations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign currency gain (loss)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(285&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;270&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(515&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock>
	<us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock contextRef="FD2018Q4YTD" id="Fact-85DAF10DAB0B77B0C3BEFA5BD4885451">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Asset Derivatives&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Liability Derivatives&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" colspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Balance&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Sheet&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Location&amp;#160; &amp;#160;&amp;#160;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" colspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Balance&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Sheet&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Location&amp;#160; &amp;#160;&amp;#160;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Fair Value&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;December 31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;December 31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;December 31, 2017&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;16&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;106&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock>
	<us-gaap:ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock contextRef="FD2018Q4YTD" id="Fact-CD3DE399E90301A7C873FA5BD4A5D527">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;A binding arbitration was concluded in 2016 with respect to certain product performance claims made by an SISD customer, for which the Company remained responsible under the indemnity provisions of the sale transaction.  In that proceeding, the tribunal ordered the Company to pay the customer approximately &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$326,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, primarily representing a refund of the product purchase price.  The tribunal also ordered the customer to pay the Company approximately &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$45,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, primarily representing reimbursement of legal fees.  The net settlement of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$281,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; was recorded in discontinued operations in 2016, along with &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$123,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of legal fees.  The tax benefit related to this expense was &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$149,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, resulting in a net loss from discontinued operations of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$255,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;. &lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock>
	<us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="FD2018Q4YTD" id="Fact-0F4A40166B1FDBAA65C0FA5BD46B34B1">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;A reconciliation of the U.S. federal statutory corporate tax rate to the Company&amp;#8217;s income tax expense on continuing operations, or effective tax rate, was as follows:&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:62%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year&amp;#160;Ended&amp;#160;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense at U.S. federal statutory corporate tax rate&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;21&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;35&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;35&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;%&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;State income taxes, net of federal benefit&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign tax rate differential&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(9&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(27&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(17&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Tax credit&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Discrete tax benefit related to employee stock option exercises&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(4&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(14&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(7&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense (benefit) related to 2017 Tax Act&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(3&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;36&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense related to write-down of deferred tax assets &lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other discrete tax events&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense on continuing operations&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;34&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#160;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
	<us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock contextRef="FD2018Q4YTD" id="Fact-23D01B382C374B841B8DFA5BD4AFD18B">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cost of revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,447&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,881&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,052&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Research, development, and engineering&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;14,578&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,271&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Selling, general, and administrative&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;24,065&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;19,039&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,235&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;41,090&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;31,942&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;20,558&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
	<us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock contextRef="FD2018Q4YTD" id="Fact-6DCE1A6D8FAEAFF2218EFA5BD4F931ED">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font 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&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:14%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quoted&amp;#160;Prices&amp;#160;in&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Active Markets&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;for Identical&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Assets (Level&amp;#160;1)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Significant&amp;#160;Other&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Observable&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Inputs (Level&amp;#160;2)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unobservable Inputs                       (Level 3)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Assets:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Money market instruments&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,557&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;300,437&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;231,237&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;132,038&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;14,417&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,921&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,337&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Liabilities:&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;106&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Contingent consideration liabilities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,544&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
	<us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="FD2018Q4YTD" id="Fact-F02C32DB31961641DF9EFA5BD45AEE83">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Amortized intangible assets consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Accumulated&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortization&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Net&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Distribution networks&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;38,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;38,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;13,687&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;6,619&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,068&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;8,607&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,716&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,891&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;370&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;216&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;154&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;60,724&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;50,611&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;10,113&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Accumulated&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortization&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Net&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Distribution networks&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;38,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;38,060&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,687&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,181&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,506&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,607&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,202&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,405&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;370&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;92&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;278&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;60,724&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;47,535&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,189&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
	<us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock contextRef="FD2018Q4YTD" id="Fact-CE1B1CE9988817B41967FA5BD45B151E">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Future minimum rental payments under these agreements are as follows (in thousands):&lt;/font&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.41520467836257%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:3%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&amp;#160;31,&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;7,086&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,227&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,109&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,918&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2023&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,209&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Thereafter&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,198&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;22,747&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock>
	<us-gaap:ScheduleOfGoodwillTextBlock contextRef="FD2018Q4YTD" id="Fact-F63E09BEB78CE32AE07DFA5BD4964815">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The changes in the carrying value of goodwill were as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;95,280&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Acquisition of ViDi Systems, S.A. &lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,333&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Acquisition of GVi Ventures, Inc.&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,476&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment to EnShape goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,881&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;113,208&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;113,208&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
	<us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock contextRef="FD2018Q4YTD" id="Fact-4B65CB76DC05228E666CFA5BD4BAF9C6">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;423&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;120&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(152&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(10&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;910&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,600&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,476&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,368&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;167&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;79&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,896&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;44&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;447&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,089&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,732&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(6&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(209&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued income taxes&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(2,342&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,901&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;504&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;296&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;680&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;840&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;925&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(77&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,176&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;168&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;598&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;384&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,383&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(14&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,519&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,350&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,911&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(115&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,149&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;146&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;425&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;129&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;40&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax asset&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;620&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(98&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(716&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax liability&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,008&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreement&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;370&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,774&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,333&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;23,015&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock>
	<us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="FD2018Q4YTD" id="Fact-66F84B7F39D8697E87B1FA5BD4A40430">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Inventories consisted of the following (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:71%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Raw materials&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;42,738&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;33,927&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Work-in-process&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;3,435&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,114&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Finished goods&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;37,109&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;31,882&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;83,282&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;67,923&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
	<us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock contextRef="FD2018Q4YTD" id="Fact-27DF88D04F60CA6FCA8A960CD5F7ADD8">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The adoption of the standard impacted our previously-reported results as follows (in thousands): &lt;/font&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="12" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Operations&lt;/font&gt;&lt;/div&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;Year Ended December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;747,950&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,133&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;766,083&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cost of revenue&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;168,698&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,591&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;187,289&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross margin&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;579,252&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(458&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;578,794&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Operating income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;259,319&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(458&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;258,861&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income before income tax expense&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;266,922&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(458&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;266,464&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense (benefit)&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;89,744&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;89,752&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;177,178&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(466&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;176,712&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="4" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net income per weighted-average common and common-equivalent share:&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Basic&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1.02&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1.02&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Diluted&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.99&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(0.01&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.98&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Operations&lt;/font&gt;&lt;/div&gt;&lt;div style="font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;520,753&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,762&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;529,515&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Cost of revenue&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;115,590&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;15,480&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;131,070&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross margin&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;405,163&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(6,718&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;398,445&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Operating income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;160,784&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(6,718&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;154,066&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income before income tax expense&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;168,795&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(6,718&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;162,077&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Income tax expense (benefit)&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,968&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(840&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;18,128&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;149,572&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(5,878&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;143,694&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="4" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Net income per weighted-average common and common-equivalent share:&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Basic&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.88&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(0.04&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.84&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Diluted&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.86&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(0.03&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.83&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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="12" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Balance Sheet&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30,800&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(117&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30,683&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accrued income taxes&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,391&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;112&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;11,503&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Deferred revenue and customer deposits&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,969&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(549&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;9,420&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Retained earnings&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;668,267&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;320&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;668,587&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;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.609375%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Shareholders' Equity&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Retained Earnings&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;643,836&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;786&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;644,622&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;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.609375%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:58%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Shareholders' Equity&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&amp;#160;December 31, 2015&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As previously reported&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Adjustment&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;As restated&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Retained Earnings&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;566,622&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,664&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;573,286&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
	<us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock contextRef="FD2018Q4YTD" id="Fact-ACA9076CD82AA6C372CBFA5BD48AE075">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company had the following outstanding forward contracts (in thousands): &lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:10%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December 31, 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December 31, 2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Currency&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Notional Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;USD Equivalent&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Notional Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;USD Equivalent&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:10px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Euro&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;23,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;26,330&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Japanese Yen&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;380,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,459&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;455,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,049&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;British Pound&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,500&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,204&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,650&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,232&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Korean Won&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,125,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,808&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,825,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,708&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Hungarian Forint&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;750,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,685&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;545,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,110&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Taiwanese Dollar&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;55,000&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,807&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;37,725&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,278&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Canadian Dollar&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;990&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;726&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Singapore Dollar&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;700&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;514&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Swiss Franc&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,365&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,401&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock>
	<us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock contextRef="FD2018Q4YTD" id="Fact-9D1CB565040E21CB79FAFA5BD4D8A799">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The changes in the warranty obligation were as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:16%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,335&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Provisions for warranties issued during the period&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,843&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fulfillment of warranty obligations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(3,109&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;632&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,701&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Provisions for warranties issued during the period&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,184&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Fulfillment of warranty obligations&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(4,024&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(118&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,743&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
	<us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock contextRef="FD2018Q4YTD" id="Fact-3AB291B0279A8DD8A3F4E8558264B81E">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quarter Ended&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;April 1,                        2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;July 1,                                 2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;September 30,                           2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;br clear="none"/&gt;2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;(In thousands, except per share amounts)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;169,567&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;211,264&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;232,221&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;193,286&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Gross margin&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;129,369&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;157,095&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;173,361&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;140,461&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Operating income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;34,596&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;63,455&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;77,844&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;45,247&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Net income&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;37,217&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;56,196&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;80,436&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;45,418&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Basic net income per share&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.21&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.33&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.47&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.26&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Diluted net income per share&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.21&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.32&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.45&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.26&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:9%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quarter Ended&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;April 2,                        2017&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;July 2,                                 2017&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;October 1,                           2017&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;font style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;December&amp;#160;31,&lt;br clear="none"/&gt;2017&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;(In thousands, except per share amounts)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;139,039&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;178,080&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;266,042&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;182,922&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Gross margin&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;106,507&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;135,916&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;197,981&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;138,390&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Operating income&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;37,216&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;60,021&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;110,849&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;50,775&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Net income (loss)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;45,471&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;56,495&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;102,493&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;(27,747&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Basic net income (loss) per share (1)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.26&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.33&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.59&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;(0.16&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;Diluted net income (loss) per share (1) (2)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.25&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.32&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;0.57&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;(0.16&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;font style="font-family:Arial;font-size:9pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock>
	<us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock contextRef="FD2018Q4YTD" id="Fact-E5484B7CFDB79D29B95AFA5BD4D6F009">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes information about geographic areas (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:31%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;United&amp;#160;States&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Europe&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Greater China &lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Other&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2018&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;231,760&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;307,965&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;126,109&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;140,504&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;806,338&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;67,156&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;23,948&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1,482&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,735&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;95,321&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2017&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;180,248&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;328,826&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;108,738&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;148,271&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;766,083&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;53,983&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;22,437&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,594&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,525&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;80,539&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2016&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;142,380&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;230,311&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;66,179&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;90,645&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;529,515&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;40,404&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;12,981&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;994&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,932&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;56,311&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock>
	<us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="FD2018Q4YTD" id="Fact-F3DD65467D11B80DE2C3FA5BD4BBDC79">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&amp;#8217;s stock option activity:&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:45%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:12%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Shares&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&amp;#160;thousands)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Weighted-&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Average&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Exercise&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Price&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Weighted-&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Average&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Remaining&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Contractual&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Term&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&amp;#160;years)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Aggregate&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Intrinsic Value&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&amp;#160;thousands)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Outstanding as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;12,726&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;25.24&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Granted&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,997&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;52.67&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Exercised&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,493&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;17.94&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Forfeited or expired&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(441&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;33.59&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Outstanding as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;13,789&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;31.73&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7.36&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;146,270&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Exercisable as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;4,556&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;20.94&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5.85&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;82,716&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Options vested or expected to vest as of&amp;#160;&lt;br clear="none"/&gt;&amp;#160;December 31, 2018 (1)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;12,499&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;30.60&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7.23&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;141,643&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;font 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
	<us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock contextRef="FD2018Q4YTD" id="Fact-65E63DFA35A0BA4B97BEFA5BD48C757B">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:56%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year&amp;#160;Ended&amp;#160;December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Risk-free rate&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2.9&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2.4&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1.7&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Expected dividend yield&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;0.35&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.40&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;0.83&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Expected volatility&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;39&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;41&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;41&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;%&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Expected term (in years)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5.4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5.4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5.6&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
	<us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock contextRef="FD2018Q4YTD" id="Fact-ABBE87D05047E2ED0737FA5BD478489D">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&amp;#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&amp;#160;31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:35%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:8%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized Loss&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Position For Less than&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;12 Months&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized Loss&lt;br clear="none"/&gt;Position For Greater than&lt;br clear="none"/&gt;12 Months&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Losses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;br clear="none"/&gt;Losses&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;br clear="none"/&gt;Losses&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;145,596&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,268&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;99,886&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(495&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;245,482&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,763&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;114,836&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(73&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;13,850&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(13&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;128,686&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(86&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;47,762&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(91&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;44,585&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(262&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;92,347&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(353&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,492&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(4&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;4,609&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(30&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;8,101&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(34&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Agency Bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,920&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(9&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,920&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(9&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,302&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&amp;#8212;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;845&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(10&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,147&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(10&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;318,908&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(1,445&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;163,775&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(810&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;482,683&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(2,255&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock>
	<us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock contextRef="FD2018Q4YTD" id="Fact-D185C68E43DC216FC70CFA5BD4C84B27">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Weighted-average shares were calculated as follows (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:56%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:13%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:inherit;font-size:8pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&amp;#160;31,&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;"&gt;2016&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Basic weighted-average common shares outstanding&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;172,333&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;173,287&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;170,676&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Effect of dilutive stock options&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;5,073&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,264&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,468&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Diluted weighted-average common and common-equivalent shares outstanding&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;177,406&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;179,551&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;174,144&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
	<us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="FD2018Q4YTD" id="Fact-EEEC5A5CBEA225E36477FA5BD4590D2E">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:15%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&amp;#160;31,&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,701&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,185&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,691&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2023&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;989&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Thereafter&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;530&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;10,113&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
	<us-gaap:SegmentReportingDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-FA314A82618E4860A6F3FA5BD4D92936">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Segment and Geographic Information&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company operates in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;one&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; segment, machine vision technology.  The Company&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes information about geographic areas (in thousands):&lt;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:31%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:11%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;United&amp;#160;States&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Europe&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Greater China &lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Other&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;font style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2018&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;231,760&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;307,965&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;126,109&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;140,504&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;806,338&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;67,156&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;23,948&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;1,482&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2,735&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;95,321&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2017&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;180,248&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;328,826&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;108,738&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;148,271&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;766,083&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;53,983&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;22,437&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,594&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2,525&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;80,539&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2016&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;142,380&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;230,311&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;66,179&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;90,645&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;529,515&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;40,404&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;12,981&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;994&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,932&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;56,311&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Revenue is presented geographically based upon the customer&amp;#8217;s country of domicile.  Revenue from a single customer accounted for &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;15%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;20%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;17%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of total revenue in 2018, 2017, and 2016, respectively. &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable from the same customer accounted for &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;40%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;10%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of total accounts receivable as of December 31, 2018, 2017, and 2016, respectively.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
	<us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="FD2018Q4YTD" id="Fact-215E8B86737CA4A62F4CFA5BD4430E54">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock-Based Compensation&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#8217;s share-based payments that result in compensation expense consist of stock option grants and restricted stock awards.  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 granting of restricted stock.  When a stock option is exercised or a restricted stock award is granted, 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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company recognizes compensation expense related to stock options 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 as if the option were, in substance, multiple awards.  The amount of compensation expense recognized at the end of the vesting period is based upon the number of stock options for which the requisite service has been completed. No compensation expense is recognized for options that are forfeited for which the employee does not render the requisite service.  The term &amp;#8220;forfeitures&amp;#8221; is distinct from &amp;#8220;expirations&amp;#8221; and represents only the unvested portion of the surrendered option.  The Company applies estimated forfeiture rates to its unvested options 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 option, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based upon the employee&amp;#8217;s service, and a credit to expense is recorded related to those employees that have not rendered the requisite service.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
	<us-gaap:SignificantAccountingPoliciesTextBlock contextRef="FD2018Q4YTD" id="Fact-3226CB0EBBBCC4ACC25BFA5BD4B5256F">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Summary of Significant Accounting Policies&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Nature of Operations&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 tasks, primarily in manufacturing processes, where vision is required.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Use of Estimates in the Preparation of Financial Statements&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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.&amp;#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, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Basis of Consolidation&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Foreign Currency Translation&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The financial statements of the Company&amp;#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&amp;#8217; equity as other comprehensive income (loss).&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Fair Value Measurements&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Cash, Cash Equivalents, and Investments&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Money market instruments and debt securities  with original maturities of three months or less are classified as cash equivalents and are stated at amortized cost.  Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments, as well as equity securities that the Company intends to sell within one year.  Debt securities with remaining maturities greater than one year are classified as long-term investments.  It is the Company&amp;#8217;s policy to invest in debt securities with effective maturities that do not exceed &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ten&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#8217; equity as other comprehensive income (loss).  Equity securities that are held for short periods of time with the intention of selling them in the near term are designated as trading and are reported at fair value, with unrealized gains and losses recorded in current operations.  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&amp;#8217;s limited partnership interest is accounted for using the cost method because the Company&amp;#8217;s investment is less than &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5%&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of the partnership and the Company has no influence over the partnership&amp;#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.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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)&amp;#160;the Company has the intent to sell the security, (ii)&amp;#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)&amp;#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)&amp;#160;or (ii)&amp;#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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounts Receivable&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Inventories&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Property, Plant, and Equipment&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#8217; estimated useful lives.  Buildings&amp;#8217; useful lives are &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;39&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, building improvements&amp;#8217; useful lives are &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ten&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;two&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;ten&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.  Leasehold improvements are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases.  Maintenance and repairs are expensed when incurred; additions and improvements are capitalized.  Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Internal-use Software&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Goodwill&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Intangible Assets&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Intangible assets are stated at cost and amortized over the assets&amp;#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 &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;eleven&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;twelve&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, of completed technologies from &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;five&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;seven&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, of customer relationships from &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;five&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;eight&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years, and of non-compete agreements &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;three&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years.  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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Warranty Obligations&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;one&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;three&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Contingencies&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Revenue Recognition&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &amp;#8220;Revenue from Contracts with Customers.&amp;#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.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Identifying the Contract with the Customer&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Identifying the Performance Obligations in the Contract&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#8217;s promise to transfer the goods and are expensed when revenue is recognized.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Determining the Transaction Price&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Allocating the Transaction Price to the Performance Obligations&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Recognizing Revenue When (or As) the Performance Obligations are Satisfied&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;For the Company&amp;#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 &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;30&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;90&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; days from billing.  The Company's contracts have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on a contract and to expense sales commissions.  The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Research and Development&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Advertising Costs&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Advertising costs are expensed as incurred and totaled &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,662,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,679,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,674,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock-Based Compensation&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#8217;s share-based payments that result in compensation expense consist of stock option grants and restricted stock awards.  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 granting of restricted stock.  When a stock option is exercised or a restricted stock award is granted, 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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company recognizes compensation expense related to stock options 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 as if the option were, in substance, multiple awards.  The amount of compensation expense recognized at the end of the vesting period is based upon the number of stock options for which the requisite service has been completed. No compensation expense is recognized for options that are forfeited for which the employee does not render the requisite service.  The term &amp;#8220;forfeitures&amp;#8221; is distinct from &amp;#8220;expirations&amp;#8221; and represents only the unvested portion of the surrendered option.  The Company applies estimated forfeiture rates to its unvested options 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 option, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based upon the employee&amp;#8217;s service, and a credit to expense is recorded related to those employees that have not rendered the requisite service.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Taxes&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#8217;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Net Income Per Share&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Comprehensive Income&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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, as of December 31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and December 31, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, consists of foreign currency translation adjustments of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$37,486,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$33,270,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively; net unrealized losses on available-for-sale investments of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,744,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$58,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$1,271,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in each year. &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Amounts reclassified from accumulated other comprehensive income to investment income on the Consolidated Statements of Operations were net realized gains of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$501,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$829,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$191,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; for &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;2016&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;, respectively.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Concentrations of Risk&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Derivative Instruments&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font 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&amp;#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.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 &amp;#8220;net&amp;#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.  &lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Business Combinations&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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 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.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
	<us-gaap:StandardProductWarrantyPolicy contextRef="FD2018Q4YTD" id="Fact-7845C395DDA26CB7C1A1FA5BD4B84A67">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Warranty Obligations&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;one&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;three&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; years 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:StandardProductWarrantyPolicy>
	<us-gaap:StockholdersEquityNoteDisclosureTextBlock contextRef="FD2018Q4YTD" id="Fact-E8015B348BB4153BA5E0FA5BD45BCF45">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Shareholders&amp;#8217; Equity&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Preferred Stock&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company has &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;400,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; shares of authorized but unissued &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$.01&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; par value preferred stock.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Common Stock&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;200,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;300,000,000&lt;/font&gt;&lt;font 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;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;10,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In October 2017, the Company&amp;#8217;s Board of Directors declared a &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;two&lt;/font&gt;&lt;font 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&amp;#8217;s common stock.  Each shareholder of record on November&amp;#160;17, 2017 received an additional share of common stock for each share of common stock then held.  The stock was distributed on December&amp;#160;1, 2017.  The Company retained the current par value of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$.002&lt;/font&gt;&lt;font 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&amp;#8217;s common stock have been adjusted to reflect the effect of the stock split for all periods presented.  Shareholders&amp;#8217; equity reflects the stock split by reclassifying from &amp;#8220;Additional paid in capital&amp;#8221; and "Retained earnings" to &amp;#8220;Common stock&amp;#8221; an amount equal to the par value of the additional shares arising from the split.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Each outstanding share of common stock entitles the record holder to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;one&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; vote on all matters submitted to a vote of the Company&amp;#8217;s shareholders.  Common shareholders are also entitled to dividends when and if declared by the Company&amp;#8217;s Board of Directors.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Shareholder Rights Agreement&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;On December 4, 2008, the Company adopted a Shareholder Rights Agreement to provide shareholders with the opportunity to benefit from the long-term prospects and value of the Company and to ensure that shareholders receive fair and equal treatment in the event of any proposed takeover of the Company.  The Shareholder Rights Agreement, which was previously filed by the Company with the Securities and Exchange Commission as an exhibit to the Registration Statement on Form&amp;#160;8-A filed on December&amp;#160;5, 2008, could have made it more difficult for a third party to acquire, or could have discouraged a third party from acquiring, the Company or a large block of the Company&amp;#8217;s common stock.   The Company determined to allow the Shareholder Rights Agreement and associated rights to expire in accordance with their terms on December 5, 2018 without renewal.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock Repurchases&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;In April 2017, the Company's Board of Directors authorized the repurchase of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$100,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of the Company's common stock.  The Company repurchased &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,744,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$100,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; under this program, including &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;803,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$45,200,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in the first quarter of 2018.  In February 2018, the Company's Board of Directors authorized the repurchase of  &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$150,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of the Company's common stock.  The Company repurchased &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;3,174,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$150,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; under this program.  In October 2018, the Company's Board of Directors authorized the repurchase of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$200,000,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; of the Company's common stock.  As of December 31, 2018, the Company repurchased &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;203,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$8,622,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; under this program, leaving a remaining balance of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$191,378,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.  Total stock repurchases in 2018 amounted to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$203,822,000&lt;/font&gt;&lt;font 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 options, stock price, share availability, and cash requirements.&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Dividends&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;The Company&amp;#8217;s Board of Directors declared and paid cash dividends of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$0.0375&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; per share in the first quarter of 2017,  &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$0.0425&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in the second and third quarters of 2017, and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$0.0450&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in the fourth quarter of 2017, as well as in the first, second, and third quarters of 2018.  The dividend was increased to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$0.0500&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in the fourth quarter of 2018.  Total dividends amounted to &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$31,865,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; and &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$29,037,000&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; in 2018 and 2017, 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;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
	<us-gaap:SubsequentEventsTextBlock contextRef="FD2018Q4YTD" id="Fact-B49B19BF8DA4F0C4AB52FA5BD4F1AED2">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Subsequent Events&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;On February 14, 2019, the Company's Board of Directors declared a cash dividend of &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$0.050&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; per share.  The dividend is payable &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;March 15, 2019&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt; to all shareholders of record as of the close of business on &lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;March 1, 2019&lt;/font&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:SubsequentEventsTextBlock>
	<us-gaap:SummaryOfIncomeTaxContingenciesTextBlock contextRef="FD2018Q4YTD" id="Fact-44298FB1F12ACEE37DBEFA5BD48CA1BF">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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;/font&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" rowspan="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:16%;" rowspan="1" colspan="1"&gt;&lt;/td&gt;&lt;td style="width:1%;" rowspan="1" colspan="1"&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2016&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;$&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;5,719&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of decreases in unrecognized tax benefits as a result of tax positions taken in prior periods&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(56&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,993&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of decreases in unrecognized tax benefits relating to settlements with taxing authorities&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(116&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&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;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(791&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2017&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;6,749&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;69&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;1,499&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font 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;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;(1,023&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;)&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2018&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;7,294&lt;/font&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;" rowspan="1" colspan="1"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;font style="font-family:inherit;font-size:10pt;"&gt;&lt;br clear="none"/&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:SummaryOfIncomeTaxContingenciesTextBlock>
	<us-gaap:UseOfEstimates contextRef="FD2018Q4YTD" id="Fact-F0008714FA6CCA27C193FA5BD4AB047D">&lt;div style="font-family:Times New Roman;font-size:10pt;"&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;font style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Use of Estimates in the Preparation of Financial Statements&lt;/font&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;font 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.&amp;#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, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
	<link:footnoteLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
		<link:loc xlink:href="#Fact-02DFDA2FF07706618C07FA5BD508DB42" xlink:label="Fact-02DFDA2FF07706618C07FA5BD508DB42_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-0BD558553B851884A6D9FA5BD45879DA" xlink:label="Fact-0BD558553B851884A6D9FA5BD45879DA_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-0C555358E654D8980463FA5BD461D3C9" xlink:label="Fact-0C555358E654D8980463FA5BD461D3C9_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-1042DEB0F497FB9403C7FA5BD4BC16A4" xlink:label="Fact-1042DEB0F497FB9403C7FA5BD4BC16A4_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-177206DD8FB0BE6CC498FA5BD50F67EA" xlink:label="Fact-177206DD8FB0BE6CC498FA5BD50F67EA_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-17D06648D8E7EF020266FA5BD4581667" xlink:label="Fact-17D06648D8E7EF020266FA5BD4581667_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-18D15E1529FB6FA49D8AFA5BD4D72C56" xlink:label="Fact-18D15E1529FB6FA49D8AFA5BD4D72C56_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-1BDF6A1821895517C038FA5BD4CEBC07" xlink:label="Fact-1BDF6A1821895517C038FA5BD4CEBC07_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-1C902509C267B3A2B73CFA5BD4C3E9D5" xlink:label="Fact-1C902509C267B3A2B73CFA5BD4C3E9D5_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-21C585DDDB232269C80BFA5BD51AFCEA" xlink:label="Fact-21C585DDDB232269C80BFA5BD51AFCEA_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-29519855013B79A01D12FA5BD508C5E7" xlink:label="Fact-29519855013B79A01D12FA5BD508C5E7_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-2AE21E93430FE86DF378FA5BD5078CD1" xlink:label="Fact-2AE21E93430FE86DF378FA5BD5078CD1_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-3406F8382C4694FF2C2DFA5BD50B2588" xlink:label="Fact-3406F8382C4694FF2C2DFA5BD50B2588_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-3DB4754F98B4FA3E28B0FA5BD5006EF2" xlink:label="Fact-3DB4754F98B4FA3E28B0FA5BD5006EF2_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-49E8B6322A7BEB5C7314FA5BD4CF7DB7" xlink:label="Fact-49E8B6322A7BEB5C7314FA5BD4CF7DB7_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-4A3C176617D68CCA35DEFA5BD443D572" xlink:label="Fact-4A3C176617D68CCA35DEFA5BD443D572_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-4A59D920888C8BD19673FA5BD461D3C6" xlink:label="Fact-4A59D920888C8BD19673FA5BD461D3C6_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-5639C6FF7581B5CDAD35FA5BD50004A5" xlink:label="Fact-5639C6FF7581B5CDAD35FA5BD50004A5_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-565D086393AE30326FF0FA5BD5060742" xlink:label="Fact-565D086393AE30326FF0FA5BD5060742_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-5760708FFD1E9B8E7792FA5BD4CCC33C" xlink:label="Fact-5760708FFD1E9B8E7792FA5BD4CCC33C_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-5875DD5BC22D49114E90FA5BD4C89938" xlink:label="Fact-5875DD5BC22D49114E90FA5BD4C89938_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-60BC0D973BFD926757A1FA5BD4C00296" xlink:label="Fact-60BC0D973BFD926757A1FA5BD4C00296_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-61FC55CE939DE22C81FBFA5BD51BB28F" xlink:label="Fact-61FC55CE939DE22C81FBFA5BD51BB28F_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-659C2A221B5868131883FA5BD4C9BBE5" xlink:label="Fact-659C2A221B5868131883FA5BD4C9BBE5_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-67303E6E5C896BFDC04FFA5BD50C0F01" xlink:label="Fact-67303E6E5C896BFDC04FFA5BD50C0F01_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-6E6B8FC5864266F2272AFA5BD4BE90CF" xlink:label="Fact-6E6B8FC5864266F2272AFA5BD4BE90CF_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-6FC88E83DDAB1735E91DFA5BD4D87DF7" xlink:label="Fact-6FC88E83DDAB1735E91DFA5BD4D87DF7_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-774CA8830D8918A169BCFA5BD502965E" xlink:label="Fact-774CA8830D8918A169BCFA5BD502965E_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-782FF730B9FA169451CAFA5BD4D0BB93" xlink:label="Fact-782FF730B9FA169451CAFA5BD4D0BB93_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-7BB461FA964B55A203E4FA5BD4C5E619" xlink:label="Fact-7BB461FA964B55A203E4FA5BD4C5E619_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-7DD91AAFB3A31298E374FA5BD4F0072D" xlink:label="Fact-7DD91AAFB3A31298E374FA5BD4F0072D_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-8737B491D30EDC39A268FA5BD4C8590E" xlink:label="Fact-8737B491D30EDC39A268FA5BD4C8590E_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-907B09B562EE00B687FCFA5BD45F1E96" xlink:label="Fact-907B09B562EE00B687FCFA5BD45F1E96_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-9887FA16D802B72459B0FA5BD519BE86" xlink:label="Fact-9887FA16D802B72459B0FA5BD519BE86_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-99E595D94C82DCD25C0AFA5BD4EFBC03" xlink:label="Fact-99E595D94C82DCD25C0AFA5BD4EFBC03_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-9C0415CAD0A27DECB4F2FA5BD4C6C5A5" xlink:label="Fact-9C0415CAD0A27DECB4F2FA5BD4C6C5A5_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-A2C843C8B4441AEF650CFA5BD4D7573D" xlink:label="Fact-A2C843C8B4441AEF650CFA5BD4D7573D_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-AE48C9248EEC121B3C5FFA5BD5188CF2" xlink:label="Fact-AE48C9248EEC121B3C5FFA5BD5188CF2_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-AF53F9CC4FCE66DA143EFA5BD4CA3C95" xlink:label="Fact-AF53F9CC4FCE66DA143EFA5BD4CA3C95_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-B7BC94A22C7B09DDD500FA5BD4F063CE" xlink:label="Fact-B7BC94A22C7B09DDD500FA5BD4F063CE_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-BC2EB406DD1946065D8BFA5BD50190CC" xlink:label="Fact-BC2EB406DD1946065D8BFA5BD50190CC_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-BE98B61EE6E9CEC9827F966AB1AF0A5B" xlink:label="Fact-BE98B61EE6E9CEC9827F966AB1AF0A5B_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-C0721C97AAB892E21713FA5BD503243D" xlink:label="Fact-C0721C97AAB892E21713FA5BD503243D_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-C6B1B6C9A6B6454680EEFA5BD4FF88CE" xlink:label="Fact-C6B1B6C9A6B6454680EEFA5BD4FF88CE_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-C94A43ACDE218ED68864FA5BD4D84B7E" xlink:label="Fact-C94A43ACDE218ED68864FA5BD4D84B7E_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-D179419CD888AF9477E5FA5BD460DD6B" xlink:label="Fact-D179419CD888AF9477E5FA5BD460DD6B_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-D3D7C6EB844A570C2767FA5BD4CF2A7D" xlink:label="Fact-D3D7C6EB844A570C2767FA5BD4CF2A7D_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-D5156C510F3ACCFA5140FA5BD444EB51" xlink:label="Fact-D5156C510F3ACCFA5140FA5BD444EB51_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-E094E0F4AB4DDC04FC44FA5BD4CD8776" xlink:label="Fact-E094E0F4AB4DDC04FC44FA5BD4CD8776_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-E633FED3EF87937F9E65FA5BD44323A3" xlink:label="Fact-E633FED3EF87937F9E65FA5BD44323A3_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-E7C46CFFAFFD852D90CBFA5BD5111D8A" xlink:label="Fact-E7C46CFFAFFD852D90CBFA5BD5111D8A_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-F0F695DBBA1697C9757DFA5BD4CB2E8C" xlink:label="Fact-F0F695DBBA1697C9757DFA5BD4CB2E8C_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-F10D1188AD681C424413FA5BD44002A2" xlink:label="Fact-F10D1188AD681C424413FA5BD44002A2_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-F1F7956E73D2F113CD04FA5BD519BFDC" xlink:label="Fact-F1F7956E73D2F113CD04FA5BD519BFDC_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-F35B4785DF5A96CCAAFCFA5BD4D5B9E7" xlink:label="Fact-F35B4785DF5A96CCAAFCFA5BD4D5B9E7_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-F6AEF83F58BB81D0D8E4FA5BD519AF13" xlink:label="Fact-F6AEF83F58BB81D0D8E4FA5BD519AF13_lbl" xlink:type="locator" />
		<link:loc xlink:href="#Fact-FBA0673FF76AE4350B1FFA5BD4D6FE9F" xlink:label="Fact-FBA0673FF76AE4350B1FFA5BD4D6FE9F_lbl" xlink:type="locator" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-02DFDA2FF07706618C07FA5BD508DB42_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-0BD558553B851884A6D9FA5BD45879DA_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-0C555358E654D8980463FA5BD461D3C9_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-1042DEB0F497FB9403C7FA5BD4BC16A4_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-177206DD8FB0BE6CC498FA5BD50F67EA_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-17D06648D8E7EF020266FA5BD4581667_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-18D15E1529FB6FA49D8AFA5BD4D72C56_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-1BDF6A1821895517C038FA5BD4CEBC07_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-1C902509C267B3A2B73CFA5BD4C3E9D5_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-21C585DDDB232269C80BFA5BD51AFCEA_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-29519855013B79A01D12FA5BD508C5E7_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-2AE21E93430FE86DF378FA5BD5078CD1_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-3406F8382C4694FF2C2DFA5BD50B2588_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-3DB4754F98B4FA3E28B0FA5BD5006EF2_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-49E8B6322A7BEB5C7314FA5BD4CF7DB7_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-4A3C176617D68CCA35DEFA5BD443D572_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-4A59D920888C8BD19673FA5BD461D3C6_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-5639C6FF7581B5CDAD35FA5BD50004A5_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-565D086393AE30326FF0FA5BD5060742_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-5760708FFD1E9B8E7792FA5BD4CCC33C_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-5875DD5BC22D49114E90FA5BD4C89938_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-60BC0D973BFD926757A1FA5BD4C00296_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-61FC55CE939DE22C81FBFA5BD51BB28F_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-659C2A221B5868131883FA5BD4C9BBE5_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-67303E6E5C896BFDC04FFA5BD50C0F01_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-6E6B8FC5864266F2272AFA5BD4BE90CF_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-6FC88E83DDAB1735E91DFA5BD4D87DF7_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-774CA8830D8918A169BCFA5BD502965E_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-782FF730B9FA169451CAFA5BD4D0BB93_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-7BB461FA964B55A203E4FA5BD4C5E619_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-7DD91AAFB3A31298E374FA5BD4F0072D_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-8737B491D30EDC39A268FA5BD4C8590E_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-907B09B562EE00B687FCFA5BD45F1E96_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-9887FA16D802B72459B0FA5BD519BE86_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-99E595D94C82DCD25C0AFA5BD4EFBC03_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-9C0415CAD0A27DECB4F2FA5BD4C6C5A5_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-A2C843C8B4441AEF650CFA5BD4D7573D_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-AE48C9248EEC121B3C5FFA5BD5188CF2_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-AF53F9CC4FCE66DA143EFA5BD4CA3C95_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-B7BC94A22C7B09DDD500FA5BD4F063CE_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-BC2EB406DD1946065D8BFA5BD50190CC_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-BE98B61EE6E9CEC9827F966AB1AF0A5B_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-C0721C97AAB892E21713FA5BD503243D_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-C6B1B6C9A6B6454680EEFA5BD4FF88CE_lbl" xlink:to="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-C94A43ACDE218ED68864FA5BD4D84B7E_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-D179419CD888AF9477E5FA5BD460DD6B_lbl" xlink:to="Footnote-51049138304B702F796FE373E3EDC1C4_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-D3D7C6EB844A570C2767FA5BD4CF2A7D_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-D5156C510F3ACCFA5140FA5BD444EB51_lbl" xlink:to="Footnote-51049138304B702F796FE373E3EDC1C4_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-E094E0F4AB4DDC04FC44FA5BD4CD8776_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-E633FED3EF87937F9E65FA5BD44323A3_lbl" xlink:to="Footnote-51049138304B702F796FE373E3EDC1C4_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-E7C46CFFAFFD852D90CBFA5BD5111D8A_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-F0F695DBBA1697C9757DFA5BD4CB2E8C_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-F10D1188AD681C424413FA5BD44002A2_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-F1F7956E73D2F113CD04FA5BD519BFDC_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-F35B4785DF5A96CCAAFCFA5BD4D5B9E7_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-F6AEF83F58BB81D0D8E4FA5BD519AF13_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnoteArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="Fact-FBA0673FF76AE4350B1FFA5BD4D6FE9F_lbl" xlink:to="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_lbl" xlink:type="arc" />
		<link:footnote xlink:label="Footnote-0DF59EB2CC204FA21BEAE38C5497D5E1_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:footnote xlink:label="Footnote-51049138304B702F796FE373E3EDC1C4_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:footnote xlink:label="Footnote-54C81FCDAE8BEFCFFF6AE380A2AE5F64_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</link:footnote>
	</link:footnoteLink>
</xbrli:xbrl>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>9
<FILENAME>cgnx-20181231.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/20181231" xmlns:cgnx="http://cognex.com/20181231" 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/2018-01-31" schemaLocation="https://xbrl.sec.gov/dei/2018/dei-2018-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-20181231_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-20181231_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-20181231_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-20181231_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>2109100 - 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>2409403 - 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>2409402 - 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>2309301 - 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>2123100 - 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>2423402 - 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>2323301 - 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="AcquisitionsAqsenseSLNarrativeDetails" roleURI="http://cognex.com/role/AcquisitionsAqsenseSLNarrativeDetails">
        <link:definition>2423413 - Disclosure - Acquisitions - AQSense, S.L. 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="AcquisitionsAqsenseSLPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/AcquisitionsAqsenseSLPurchasePriceAllocationDetails">
        <link:definition>2423414 - Disclosure - Acquisitions - AQSense, S.L. 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="AcquisitionsChiaroTechnologiesLlcDetails" roleURI="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcDetails">
        <link:definition>2423408 - Disclosure - Acquisitions - Chiaro Technologies LLC (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="AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails">
        <link:definition>2423409 - Disclosure - Acquisitions - Chiaro Technologies LLC 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="AcquisitionsEnshapeGmbhNarrativeDetails" roleURI="http://cognex.com/role/AcquisitionsEnshapeGmbhNarrativeDetails">
        <link:definition>2423410 - Disclosure - Acquisitions - EnShape GmbH 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="AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails">
        <link:definition>2423412 - Disclosure - Acquisitions - EnShape GmbH 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="AcquisitionsGviVenturesIncDetails" roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncDetails">
        <link:definition>2423403 - 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>2423404 - 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="AcquisitionsManateeWorksIncNarrativeDetails" roleURI="http://cognex.com/role/AcquisitionsManateeWorksIncNarrativeDetails">
        <link:definition>2423415 - Disclosure - Acquisitions - Manatee Works Inc. 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="AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/AcquisitionsManateeWorksIncPurchasePriceAllocationDetails">
        <link:definition>2423416 - Disclosure - Acquisitions - Manatee Works 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="AcquisitionsVidiSystemsSADetails" roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSADetails">
        <link:definition>2423405 - 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>2423411 - 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="AcquisitionsWebscanIncNarrativeDetails" roleURI="http://cognex.com/role/AcquisitionsWebscanIncNarrativeDetails">
        <link:definition>2423406 - Disclosure - Acquisitions - Webscan, Inc. 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="AcquisitionsWebscanIncPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/AcquisitionsWebscanIncPurchasePriceAllocationDetails">
        <link:definition>2423407 - Disclosure - Acquisitions - Webscan, 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="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>2110100 - 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>2410402 - 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="CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" roleURI="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail">
        <link:definition>2410403 - Disclosure - Commitments and Contingencies - Future Minimum Rental Payments Under Lease Agreements (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="CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" roleURI="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail">
        <link:definition>2410404 - Disclosure - Commitments and Contingencies - Future Minimum Rental Receipts Under Non - Cancelable Lease Agreements (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="CommitmentsAndContingenciesTables" roleURI="http://cognex.com/role/CommitmentsAndContingenciesTables">
        <link:definition>2310301 - Disclosure - Commitments and Contingencies (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="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="DerivativeInstruments" roleURI="http://cognex.com/role/DerivativeInstruments">
        <link:definition>2113100 - 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>2413402 - 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>2413405 - 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>2413404 - 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>2413407 - 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>2413406 - 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>2413403 - 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>2313301 - 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="DiscontinuedOperations" roleURI="http://cognex.com/role/DiscontinuedOperations">
        <link:definition>2122100 - Disclosure - Discontinued 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="DiscontinuedOperationsDetails" roleURI="http://cognex.com/role/DiscontinuedOperationsDetails">
        <link:definition>2422402 - Disclosure - Discontinued Operations - (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="DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" roleURI="http://cognex.com/role/DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails">
        <link:definition>2422403 - Disclosure - Discontinued Operations - Schedule of Discontinued Operations (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="DiscontinuedOperationsTables" roleURI="http://cognex.com/role/DiscontinuedOperationsTables">
        <link:definition>2322301 - Disclosure - Discontinued Operations - (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="DocumentAndEntityInformation" roleURI="http://cognex.com/role/DocumentAndEntityInformation">
        <link:definition>0001000 - Document - Document and Entity 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="EmployeeSavingsPlan" roleURI="http://cognex.com/role/EmployeeSavingsPlan">
        <link:definition>2118100 - 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>2418401 - 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>2107100 - 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>2407402 - 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>2307301 - 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>2112100 - 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>2412401 - 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>2108100 - 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>2408402 - 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>2408403 - 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>2308301 - 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="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>2114100 - 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>2414404 - 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>2414406 - 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>2414405 - 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>2414402 - 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>2414403 - 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>2314301 - 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>2126100 - 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>2426401 - 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>2121100 - 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>2421402 - 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>2421403 - 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>2321301 - 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>2125100 - 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>2425402 - 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>2325301 - 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>2116100 - 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>2416401 - 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>2117100 - 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>2417402 - 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>2417406 - 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>2417405 - 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>2417403 - 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>2417404 - 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>2317301 - 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>2124100 - 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>2424401 - 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>2119100 - 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>2419402 - 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>2419405 - 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>2419406 - 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>2419403 - 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>2419404 - 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="TaxesTables" roleURI="http://cognex.com/role/TaxesTables">
        <link:definition>2319301 - 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>2120100 - 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>2420403 - 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>2420402 - 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>2320301 - 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_AMETEKMatterMember" name="AMETEKMatterMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_AQSenseS.L.Member" name="AQSenseS.L.Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <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_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" name="AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" 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_BusinessCombinationConsiderationTransferredDeferredCashPayment" name="BusinessCombinationConsiderationTransferredDeferredCashPayment" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition" name="BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition" 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" 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 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 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_DeferredTaxAssetsOtherNoncurrent" name="DeferredTaxAssetsOtherNoncurrent" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState" name="DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element abstract="true" id="cgnx_DocumentDocumentandEntityInformationAbstract" name="DocumentDocumentandEntityInformationAbstract" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration" />
  <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_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" name="EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element abstract="true" id="cgnx_EnShapeGmbHMember" name="EnShapeGmbHMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <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 abstract="true" id="cgnx_HighlyCompensatedEmployeeMember" name="HighlyCompensatedEmployeeMember" 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_LongTermInvestmentsMember" name="LongTermInvestmentsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue" name="LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue" name="LossContingencyDamagesAwardedReimbursementOfLegalFeesValue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" 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 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_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 id="cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock" name="ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" 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 abstract="true" id="cgnx_SisdMember" name="SisdMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" 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 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:element abstract="true" id="cgnx_WebscanInc.Member" name="WebscanInc.Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>10
<FILENAME>cgnx-20181231_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-20181231.xsd#AccruedExpenses" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail" xlink:href="cgnx-20181231.xsd#AccruedExpensesChangesInWarrantyObligationsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:href="cgnx-20181231.xsd#AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesTables" xlink:href="cgnx-20181231.xsd#AccruedExpensesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Acquisitions" xlink:href="cgnx-20181231.xsd#Acquisitions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsAcquisitionsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsTables" xlink:href="cgnx-20181231.xsd#AcquisitionsAcquisitionsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAqsenseSLNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsAqsenseSLNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAqsenseSLPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsAqsenseSLPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsChiaroTechnologiesLlcDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsEnshapeGmbhNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsEnshapeGmbhNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsGviVenturesIncDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsManateeWorksIncNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsManateeWorksIncNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSADetails" xlink:href="cgnx-20181231.xsd#AcquisitionsVidiSystemsSADetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsWebscanIncNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsWebscanIncNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsWebscanIncPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsWebscanIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestments" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingencies" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesTables" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheets" xlink:href="cgnx-20181231.xsd#ConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfCashFlows" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfComprehensiveIncome" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperations" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfOperationsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstruments" xlink:href="cgnx-20181231.xsd#DerivativeInstruments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsChangesInAociDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsTables" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperations" xlink:href="cgnx-20181231.xsd#DiscontinuedOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperationsDetails" xlink:href="cgnx-20181231.xsd#DiscontinuedOperationsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" xlink:href="cgnx-20181231.xsd#DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperationsTables" xlink:href="cgnx-20181231.xsd#DiscontinuedOperationsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DocumentAndEntityInformation" xlink:href="cgnx-20181231.xsd#DocumentAndEntityInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlan" xlink:href="cgnx-20181231.xsd#EmployeeSavingsPlan" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurements" xlink:href="cgnx-20181231.xsd#FairValueMeasurements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:href="cgnx-20181231.xsd#FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:href="cgnx-20181231.xsd#FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsTables" xlink:href="cgnx-20181231.xsd#FairValueMeasurementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Goodwill" xlink:href="cgnx-20181231.xsd#Goodwill" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:href="cgnx-20181231.xsd#GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillTables" xlink:href="cgnx-20181231.xsd#GoodwillTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisions" xlink:href="cgnx-20181231.xsd#IndemnificationProvisions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails" xlink:href="cgnx-20181231.xsd#IndemnificationProvisionsNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssets" xlink:href="cgnx-20181231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:href="cgnx-20181231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:href="cgnx-20181231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsTables" xlink:href="cgnx-20181231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Inventories" xlink:href="cgnx-20181231.xsd#Inventories" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:href="cgnx-20181231.xsd#InventoriesInventoriesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesTables" xlink:href="cgnx-20181231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncements" xlink:href="cgnx-20181231.xsd#NewPronouncements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncementsDetails" xlink:href="cgnx-20181231.xsd#NewPronouncementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipment" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentTables" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognition" xlink:href="cgnx-20181231.xsd#RevenueRecognition" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionBalanceSheetImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionNarrativesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionStatementOfOperationsImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionTables" xlink:href="cgnx-20181231.xsd#RevenueRecognitionTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts" xlink:href="cgnx-20181231.xsd#ScheduleIiValuationAndQualifyingAccounts" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail" xlink:href="cgnx-20181231.xsd#ScheduleIiValuationAndQualifyingAccountsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformation" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformationAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationTables" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited" xlink:href="cgnx-20181231.xsd#SelectedQuarterlyFinancialDataUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails" xlink:href="cgnx-20181231.xsd#SelectedQuarterlyFinancialDataUnauditedDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables" xlink:href="cgnx-20181231.xsd#SelectedQuarterlyFinancialDataUnauditedTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquity" xlink:href="cgnx-20181231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensation" xlink:href="cgnx-20181231.xsd#StockBasedCompensation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationTables" xlink:href="cgnx-20181231.xsd#StockBasedCompensationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEvents" xlink:href="cgnx-20181231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:href="cgnx-20181231.xsd#SubsequentEventsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Taxes" xlink:href="cgnx-20181231.xsd#Taxes" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesAdditionalInformationDetails" xlink:href="cgnx-20181231.xsd#TaxesAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:href="cgnx-20181231.xsd#TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:href="cgnx-20181231.xsd#TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:href="cgnx-20181231.xsd#TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:href="cgnx-20181231.xsd#TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesTables" xlink:href="cgnx-20181231.xsd#TaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageShares" xlink:href="cgnx-20181231.xsd#WeightedAverageShares" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:href="cgnx-20181231.xsd#WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesTables" xlink:href="cgnx-20181231.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="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="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_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_AccruedVacationCurrent" xlink:label="loc_us-gaap_AccruedVacationCurrent_b8f4ceb9-0776-826c-20ff-62f5117a67ea" 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_AccruedVacationCurrent_b8f4ceb9-0776-826c-20ff-62f5117a67ea" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RetirementAllowance" xlink:label="loc_cgnx_RetirementAllowance_972366e5-5c74-1ec5-b740-fa5be701cf8e" 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_cgnx_RetirementAllowance_972366e5-5c74-1ec5-b740-fa5be701cf8e" 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="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_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_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized" xlink:label="loc_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_c961da52-3020-0bd8-1ff5-d9cfd6539536" 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_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_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/AcquisitionsAqsenseSLNarrativeDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsAqsenseSLPurchasePriceAllocationDetails" 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6558b51b-e5e6-31be-658a-d87768e28cf6" 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_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="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_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" 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_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_4969e367-c531-0df1-f44b-bfbc106efa7e" 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_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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6558b51b-e5e6-31be-658a-d87768e28cf6" 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_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="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_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" 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_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsEnshapeGmbhNarrativeDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_9ad6eb0b-0be8-3959-8888-f510808da951" 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_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="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_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="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_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_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: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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_fbe331bf-e36a-7435-2eec-e3249b6c0997" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" 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_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_fd3aa52b-afd4-8521-5883-fa5be7053174" 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_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_fd3aa52b-afd4-8521-5883-fa5be7053174" xlink:type="arc" />
  </link:calculationLink>
  <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-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" 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_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" 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/AcquisitionsManateeWorksIncNarrativeDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_4969e367-c531-0df1-f44b-bfbc106efa7e" 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_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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6558b51b-e5e6-31be-658a-d87768e28cf6" 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_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="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_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-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" 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_de5e22e3-3b5d-f114-8d2a-fa5be63d8038" 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/AcquisitionsWebscanIncNarrativeDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsWebscanIncPurchasePriceAllocationDetails" xlink:type="extended" />
  <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-20181231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_3801377b-1636-2b28-165c-fa5be719e4d3" 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_3801377b-1636-2b28-165c-fa5be719e4d3" 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_3801377b-1636-2b28-165c-fa5be719e4d3" 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_3801377b-1636-2b28-165c-fa5be719e4d3" xlink:to="loc_us-gaap_LongTermInvestments_82393af8-00cf-c878-caac-887e4fcb1248" 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-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_d93fa5d7-4ecc-3ced-a4ae-fa5be6dedee7" 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_d93fa5d7-4ecc-3ced-a4ae-fa5be6dedee7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_31a6c15d-8e3d-406a-8556-fa5be62d21aa" 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_31a6c15d-8e3d-406a-8556-fa5be62d21aa" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_01f9e546-2858-e5bd-9c9b-fa5be6afa17e" 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_01f9e546-2858-e5bd-9c9b-fa5be6afa17e" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_7809dd74-8969-c92f-211c-fa5be653aba8" 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_7809dd74-8969-c92f-211c-fa5be653aba8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_8e28dae6-8925-419d-163a-fa5be637dfa3" xlink:type="locator" />
    <link:calculationArc order="6" 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_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_8e28dae6-8925-419d-163a-fa5be637dfa3" 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_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: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: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/CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_30d028f9-2f3a-4a0c-02f8-ea9552d875b6" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_f67237f3-7c78-8a5c-b7b3-17f1eb0b017a" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_30d028f9-2f3a-4a0c-02f8-ea9552d875b6" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_f67237f3-7c78-8a5c-b7b3-17f1eb0b017a" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_ccaff3fc-3d87-e58a-0083-69dda0c10f9d" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_30d028f9-2f3a-4a0c-02f8-ea9552d875b6" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_ccaff3fc-3d87-e58a-0083-69dda0c10f9d" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_39e76369-4fdc-9d5f-860a-45d0795e5fb0" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_30d028f9-2f3a-4a0c-02f8-ea9552d875b6" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_39e76369-4fdc-9d5f-860a-45d0795e5fb0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_fe404cae-7fcc-3489-844f-4d90e9776180" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_30d028f9-2f3a-4a0c-02f8-ea9552d875b6" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_fe404cae-7fcc-3489-844f-4d90e9776180" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_5b651b24-1278-4eab-c840-7002c6d68546" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_30d028f9-2f3a-4a0c-02f8-ea9552d875b6" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_5b651b24-1278-4eab-c840-7002c6d68546" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_36c616b1-40de-90d4-3c05-7e224ce1169a" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_30d028f9-2f3a-4a0c-02f8-ea9552d875b6" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_36c616b1-40de-90d4-3c05-7e224ce1169a" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_dab40741-515b-3af0-d4aa-b8a5ab93ba1d" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_b6e76c1b-39df-b465-1af2-b526e3412d16" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_dab40741-515b-3af0-d4aa-b8a5ab93ba1d" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_b6e76c1b-39df-b465-1af2-b526e3412d16" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_e8e69024-f660-64da-595f-10ec681d38c3" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_dab40741-515b-3af0-d4aa-b8a5ab93ba1d" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_e8e69024-f660-64da-595f-10ec681d38c3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_6b30baff-0afd-9202-9c78-60debc7e3e05" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_dab40741-515b-3af0-d4aa-b8a5ab93ba1d" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_6b30baff-0afd-9202-9c78-60debc7e3e05" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_a472fbba-7de0-dcb0-f9f3-99cd63837b76" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_dab40741-515b-3af0-d4aa-b8a5ab93ba1d" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_a472fbba-7de0-dcb0-f9f3-99cd63837b76" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesTables" 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_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" 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_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" 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_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_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_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: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_GainLossOnSaleOfBusiness" xlink:label="loc_us-gaap_GainLossOnSaleOfBusiness_1b571f63-90c7-8c54-8fc3-7d0175fc7e46" 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_GainLossOnSaleOfBusiness_1b571f63-90c7-8c54-8fc3-7d0175fc7e46" 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="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_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="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_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="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_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="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_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="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_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="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_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="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_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="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_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="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_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="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_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="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_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="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_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="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_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="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_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="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_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="19" 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_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_IncomeLossFromContinuingOperationsPerBasicShare" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_31b63a0f-747d-b77c-a6b5-43a38936cb14" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EarningsPerShareBasic_2e12b455-2439-5ef9-0bdd-e47924f55d69" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_31b63a0f-747d-b77c-a6b5-43a38936cb14" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_41806e20-3d53-7bc7-746d-53bc590ba1ce" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EarningsPerShareBasic_2e12b455-2439-5ef9-0bdd-e47924f55d69" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_41806e20-3d53-7bc7-746d-53bc590ba1ce" 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_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_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_5370c06c-b2c2-6141-9d80-aba5ec64a262" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EarningsPerShareDiluted_40f1fc5c-8b65-4746-cdb0-c2a06553cc3f" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_5370c06c-b2c2-6141-9d80-aba5ec64a262" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_d07fe3b8-4b22-77b7-16e9-1f9f33b2bcaa" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EarningsPerShareDiluted_40f1fc5c-8b65-4746-cdb0-c2a06553cc3f" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_d07fe3b8-4b22-77b7-16e9-1f9f33b2bcaa" 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:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperations" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperations_94f31e74-10af-23c9-6750-e629ed0cc4ed" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_a10eea14-f4db-3125-d183-77bb54500e95" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperations_94f31e74-10af-23c9-6750-e629ed0cc4ed" 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_19dfad62-5a43-dcc4-04a8-012732c1ed97" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperations_94f31e74-10af-23c9-6750-e629ed0cc4ed" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_19dfad62-5a43-dcc4-04a8-012732c1ed97" 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_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: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:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperations_94f31e74-10af-23c9-6750-e629ed0cc4ed" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_97bbae57-7f84-4da9-acab-610e56204929" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_5b931a9a-8475-ddfa-f7f0-ce511990c1b0" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_a10eea14-f4db-3125-d183-77bb54500e95" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_5b931a9a-8475-ddfa-f7f0-ce511990c1b0" 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/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_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: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: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/DiscontinuedOperations" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DiscontinuedOperationsDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_5b931a9a-8475-ddfa-f7f0-ce511990c1b0" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation" xlink:label="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_925a043d-18b3-5d03-8e0b-c0fb4146cd8c" xlink:type="locator" />
    <link:calculationArc order="1" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_5b931a9a-8475-ddfa-f7f0-ce511990c1b0" xlink:to="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_925a043d-18b3-5d03-8e0b-c0fb4146cd8c" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/DiscontinuedOperationsTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DocumentAndEntityInformation" 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-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_5158b6cd-b729-305e-2317-fa5be6c8d2b3" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_a24c7450-40e9-8207-73f2-fa5be720d056" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_5158b6cd-b729-305e-2317-fa5be6c8d2b3" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_a24c7450-40e9-8207-73f2-fa5be720d056" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_5561684c-1a1c-0572-45cc-fa5be6ad6701" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_5158b6cd-b729-305e-2317-fa5be6c8d2b3" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_5561684c-1a1c-0572-45cc-fa5be6ad6701" 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/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-20181231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_690acbd7-b8ff-415f-d65f-fa5be6b357b6" 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_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_690acbd7-b8ff-415f-d65f-fa5be6b357b6" 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_DeferredTaxAssetsInventory" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_475c85ca-97e4-c8e8-9ee2-6c534eb18ace" 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_DeferredTaxAssetsInventory_475c85ca-97e4-c8e8-9ee2-6c534eb18ace" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_60a3f7fa-e2d5-12a3-6433-fa5be65ef432" 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_cgnx_NoncurrentDeferredTaxAssetsDeprecation_60a3f7fa-e2d5-12a3-6433-fa5be65ef432" 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="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_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_059ea1c5-ba15-6d4b-3fb5-5fbf937cf251" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_d58d82ac-b0d3-f6c0-2dbb-fa5be68d41c1" 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_cgnx_DeferredTaxAssetsOtherNoncurrent_d58d82ac-b0d3-f6c0-2dbb-fa5be68d41c1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesNoncurrent_6b1efbc2-e859-9fbd-c572-2f4147498390" 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_DeferredTaxLiabilitiesNoncurrent_6b1efbc2-e859-9fbd-c572-2f4147498390" 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="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesNoncurrent_6b1efbc2-e859-9fbd-c572-2f4147498390" 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_DeferredTaxAssetsValuationAllowanceNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_5c322398-6ed4-f69d-b468-8d9afcf23b4f" xlink:type="locator" />
    <link:calculationArc order="3" 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="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="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_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-20181231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_55fc2cde-a154-fa10-a6ba-fa5be7101b30" 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_55fc2cde-a154-fa10-a6ba-fa5be7101b30" 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="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="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_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_7ffe16d1-cedd-985f-c95d-65ae6fa8d756" 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="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_EffectiveIncomeTaxRateReconciliationOtherAdjustments_00f37689-1982-1c68-c80b-43003f810247" xlink:type="arc" />
  </link:calculationLink>
  <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>11
<FILENAME>cgnx-20181231_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-20181231.xsd#AccruedExpenses" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail" xlink:href="cgnx-20181231.xsd#AccruedExpensesChangesInWarrantyObligationsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:href="cgnx-20181231.xsd#AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesTables" xlink:href="cgnx-20181231.xsd#AccruedExpensesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Acquisitions" xlink:href="cgnx-20181231.xsd#Acquisitions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsAcquisitionsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsTables" xlink:href="cgnx-20181231.xsd#AcquisitionsAcquisitionsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAqsenseSLNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsAqsenseSLNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAqsenseSLPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsAqsenseSLPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsChiaroTechnologiesLlcDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsEnshapeGmbhNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsEnshapeGmbhNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsGviVenturesIncDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsManateeWorksIncNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsManateeWorksIncNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSADetails" xlink:href="cgnx-20181231.xsd#AcquisitionsVidiSystemsSADetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsWebscanIncNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsWebscanIncNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsWebscanIncPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsWebscanIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestments" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingencies" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesTables" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheets" xlink:href="cgnx-20181231.xsd#ConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfCashFlows" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfComprehensiveIncome" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperations" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfOperationsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstruments" xlink:href="cgnx-20181231.xsd#DerivativeInstruments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsChangesInAociDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsTables" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperations" xlink:href="cgnx-20181231.xsd#DiscontinuedOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperationsDetails" xlink:href="cgnx-20181231.xsd#DiscontinuedOperationsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" xlink:href="cgnx-20181231.xsd#DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperationsTables" xlink:href="cgnx-20181231.xsd#DiscontinuedOperationsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DocumentAndEntityInformation" xlink:href="cgnx-20181231.xsd#DocumentAndEntityInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlan" xlink:href="cgnx-20181231.xsd#EmployeeSavingsPlan" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurements" xlink:href="cgnx-20181231.xsd#FairValueMeasurements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:href="cgnx-20181231.xsd#FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:href="cgnx-20181231.xsd#FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsTables" xlink:href="cgnx-20181231.xsd#FairValueMeasurementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Goodwill" xlink:href="cgnx-20181231.xsd#Goodwill" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:href="cgnx-20181231.xsd#GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillTables" xlink:href="cgnx-20181231.xsd#GoodwillTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisions" xlink:href="cgnx-20181231.xsd#IndemnificationProvisions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails" xlink:href="cgnx-20181231.xsd#IndemnificationProvisionsNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssets" xlink:href="cgnx-20181231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:href="cgnx-20181231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:href="cgnx-20181231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsTables" xlink:href="cgnx-20181231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Inventories" xlink:href="cgnx-20181231.xsd#Inventories" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:href="cgnx-20181231.xsd#InventoriesInventoriesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesTables" xlink:href="cgnx-20181231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncements" xlink:href="cgnx-20181231.xsd#NewPronouncements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncementsDetails" xlink:href="cgnx-20181231.xsd#NewPronouncementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipment" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentTables" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognition" xlink:href="cgnx-20181231.xsd#RevenueRecognition" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionBalanceSheetImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionNarrativesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionStatementOfOperationsImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionTables" xlink:href="cgnx-20181231.xsd#RevenueRecognitionTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts" xlink:href="cgnx-20181231.xsd#ScheduleIiValuationAndQualifyingAccounts" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail" xlink:href="cgnx-20181231.xsd#ScheduleIiValuationAndQualifyingAccountsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformation" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformationAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationTables" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited" xlink:href="cgnx-20181231.xsd#SelectedQuarterlyFinancialDataUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails" xlink:href="cgnx-20181231.xsd#SelectedQuarterlyFinancialDataUnauditedDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables" xlink:href="cgnx-20181231.xsd#SelectedQuarterlyFinancialDataUnauditedTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquity" xlink:href="cgnx-20181231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensation" xlink:href="cgnx-20181231.xsd#StockBasedCompensation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationTables" xlink:href="cgnx-20181231.xsd#StockBasedCompensationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEvents" xlink:href="cgnx-20181231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:href="cgnx-20181231.xsd#SubsequentEventsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Taxes" xlink:href="cgnx-20181231.xsd#Taxes" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesAdditionalInformationDetails" xlink:href="cgnx-20181231.xsd#TaxesAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:href="cgnx-20181231.xsd#TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:href="cgnx-20181231.xsd#TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:href="cgnx-20181231.xsd#TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:href="cgnx-20181231.xsd#TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesTables" xlink:href="cgnx-20181231.xsd#TaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageShares" xlink:href="cgnx-20181231.xsd#WeightedAverageShares" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:href="cgnx-20181231.xsd#WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesTables" xlink:href="cgnx-20181231.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/AcquisitionsAqsenseSLNarrativeDetails" 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_D5ED47B6C76396EEF035FA5C22BEFB6B" 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_9B8216E0FFDB2EFE63FEFA5C22BD6AA7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_D5ED47B6C76396EEF035FA5C22BEFB6B" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_9B8216E0FFDB2EFE63FEFA5C22BD6AA7" 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_DC8D67286DF8C178EA04FA5C22BD84F9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_9B8216E0FFDB2EFE63FEFA5C22BD6AA7" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_DC8D67286DF8C178EA04FA5C22BD84F9" 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_D8F23A1E108051AC85FBFA5C22BEF9C5_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_DC8D67286DF8C178EA04FA5C22BD84F9" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D8F23A1E108051AC85FBFA5C22BEF9C5_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_D8F23A1E108051AC85FBFA5C22BEF9C5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_DC8D67286DF8C178EA04FA5C22BD84F9" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D8F23A1E108051AC85FBFA5C22BEF9C5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AQSenseS.L.Member" xlink:label="loc_cgnx_AQSenseS.L.Member_22E8DCE24CDE20AA3F4BFA5C22BED709" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D8F23A1E108051AC85FBFA5C22BEF9C5" xlink:to="loc_cgnx_AQSenseS.L.Member_22E8DCE24CDE20AA3F4BFA5C22BED709" 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_ED3B58EF33357856C4C7FA5C22BEF464" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_D5ED47B6C76396EEF035FA5C22BEFB6B" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_ED3B58EF33357856C4C7FA5C22BEF464" 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_4042E86CF491BF316264FA5C22BFB4B8" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_D5ED47B6C76396EEF035FA5C22BEFB6B" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_4042E86CF491BF316264FA5C22BFB4B8" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsAqsenseSLPurchasePriceAllocationDetails" 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_3A81FCAB72C9DBD7AD1BE44668DB87E3" 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_CBBD7D83F9D28B4642E9E44668D9F343" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_CBBD7D83F9D28B4642E9E44668D9F343" 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_FFC2B3D797459E5506FDE44668D9080C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_CBBD7D83F9D28B4642E9E44668D9F343" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_FFC2B3D797459E5506FDE44668D9080C" 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_6C62FAB9EF121189AB7AE44668D9A94C_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_FFC2B3D797459E5506FDE44668D9080C" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6C62FAB9EF121189AB7AE44668D9A94C_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_6C62FAB9EF121189AB7AE44668D9A94C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_FFC2B3D797459E5506FDE44668D9080C" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6C62FAB9EF121189AB7AE44668D9A94C" 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_DBDAA712A1957C352ACEE44668D9C170" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6C62FAB9EF121189AB7AE44668D9A94C" xlink:to="loc_us-gaap_CustomerRelationshipsMember_DBDAA712A1957C352ACEE44668D9C170" 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_0D356158A78770A86C01E44668DA57DE" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6C62FAB9EF121189AB7AE44668D9A94C" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_0D356158A78770A86C01E44668DA57DE" 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_CA472D51ED33A8F5B608E44668DA539F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_CBBD7D83F9D28B4642E9E44668D9F343" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_CA472D51ED33A8F5B608E44668DA539F" 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_52303BFF2283845D73DBE44668DAF834_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_CA472D51ED33A8F5B608E44668DA539F" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_52303BFF2283845D73DBE44668DAF834_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_52303BFF2283845D73DBE44668DAF834" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_CA472D51ED33A8F5B608E44668DA539F" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_52303BFF2283845D73DBE44668DAF834" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AQSenseS.L.Member" xlink:label="loc_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_52303BFF2283845D73DBE44668DAF834" xlink:to="loc_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" 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_03C6716AF33F1EDD436BE44668DB22D6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_03C6716AF33F1EDD436BE44668DB22D6" 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_404511100B046D142235E44668DB3539" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_404511100B046D142235E44668DB3539" 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_83BD214566D6080A96FAE44668DBADD9" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_us-gaap_Goodwill_83BD214566D6080A96FAE44668DBADD9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_38FECB67865192077190E44668DB236A" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_38FECB67865192077190E44668DB236A" 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_0A267D61DD77A10F0927E44668DCD3F8" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_0A267D61DD77A10F0927E44668DCD3F8" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcDetails" 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_B9F0111DE637740D4F4DE4466913A1EE" 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_410BC7E53D993A72747BE446691054CD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_410BC7E53D993A72747BE446691054CD" 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_F8D4A7273D5EBA1C61DCE44669117FB4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_410BC7E53D993A72747BE446691054CD" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_F8D4A7273D5EBA1C61DCE44669117FB4" 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_B355AF8407C8C4551240E4466911CDE6_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_F8D4A7273D5EBA1C61DCE44669117FB4" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B355AF8407C8C4551240E4466911CDE6_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_B355AF8407C8C4551240E4466911CDE6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_F8D4A7273D5EBA1C61DCE44669117FB4" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B355AF8407C8C4551240E4466911CDE6" 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_18AC40E3FDA0C859A473E44669113AD7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B355AF8407C8C4551240E4466911CDE6" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_18AC40E3FDA0C859A473E44669113AD7" 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_C2CC83BE5AA5F3A7F567E4466912D390" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_410BC7E53D993A72747BE446691054CD" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_C2CC83BE5AA5F3A7F567E4466912D390" 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_886F8F92B539E4D14708E44669125543_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_C2CC83BE5AA5F3A7F567E4466912D390" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_886F8F92B539E4D14708E44669125543_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_886F8F92B539E4D14708E44669125543" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_C2CC83BE5AA5F3A7F567E4466912D390" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_886F8F92B539E4D14708E44669125543" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_886F8F92B539E4D14708E44669125543" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" 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_60B0CB388D8C7DB8F8FFE44669136EBE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_60B0CB388D8C7DB8F8FFE44669136EBE" 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_1212A06FC70FCD0DE462E446691331C7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_1212A06FC70FCD0DE462E446691331C7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670" 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_18A111A1631B13B4877CE4466913395D" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_18A111A1631B13B4877CE4466913395D" 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_2291374B1F5E63A92CE5E44669139411" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_2291374B1F5E63A92CE5E44669139411" 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_64813D0701326EE22390E4466914AEF4" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_64813D0701326EE22390E4466914AEF4" 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_11C524301272BA8ABDC1E4466914482A" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_11C524301272BA8ABDC1E4466914482A" 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_A6224CF50742A7068565E446691456EA" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_A6224CF50742A7068565E446691456EA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_2270CA8A6EB18EFB13A1E4466914183E" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_cgnx_Taxdeductiblegoodwill_2270CA8A6EB18EFB13A1E4466914183E" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" 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_092F83327FBB7A5A9552E446690A9CC9" 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_EAA4E6767874D5CD80B5E4466908D3C5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_EAA4E6767874D5CD80B5E4466908D3C5" 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_C8FB018536B99BF4097EE44669083AC8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_EAA4E6767874D5CD80B5E4466908D3C5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C8FB018536B99BF4097EE44669083AC8" 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_5F65824FED374848FBC8E4466908755D_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C8FB018536B99BF4097EE44669083AC8" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_5F65824FED374848FBC8E4466908755D_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_5F65824FED374848FBC8E4466908755D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C8FB018536B99BF4097EE44669083AC8" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_5F65824FED374848FBC8E4466908755D" 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_64D547EFD44AE09A9821E4466909D385" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_5F65824FED374848FBC8E4466908755D" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_64D547EFD44AE09A9821E4466909D385" 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_2F4CD161443D1FE4A77DE44669095153" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_EAA4E6767874D5CD80B5E4466908D3C5" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_2F4CD161443D1FE4A77DE44669095153" 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_295F6AE88DDFEC883771E446690962E9_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_2F4CD161443D1FE4A77DE44669095153" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_295F6AE88DDFEC883771E446690962E9_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_295F6AE88DDFEC883771E446690962E9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_2F4CD161443D1FE4A77DE44669095153" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_295F6AE88DDFEC883771E446690962E9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_2F022D2FBCEFC3CCC502E446690900FB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_295F6AE88DDFEC883771E446690962E9" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_2F022D2FBCEFC3CCC502E446690900FB" 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_852A440082B8704E7DEBE446690AA374" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_852A440082B8704E7DEBE446690AA374" 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_4CDEB810F723FBC44A1DE446690AAF7B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_4CDEB810F723FBC44A1DE446690AAF7B" 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_FE037AC78031DC1A7275E446690B8148" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_us-gaap_Goodwill_FE037AC78031DC1A7275E446690B8148" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_E4ED7033F3DC2562BDE6E446690B153E" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_E4ED7033F3DC2562BDE6E446690B153E" 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_075736012B19C0C9350BE446690B3B99" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_075736012B19C0C9350BE446690B3B99" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsEnshapeGmbhNarrativeDetails" 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_8CBC75851E00CBD8A17A7807340D0315" 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_FE747FB44F8E2E11FC197807340A0A17" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_FE747FB44F8E2E11FC197807340A0A17" 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_F4AF83B04935F58AB7097807340AC8C4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_FE747FB44F8E2E11FC197807340A0A17" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_F4AF83B04935F58AB7097807340AC8C4" 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_29193C60D6BD34772E147807340B1CED_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_F4AF83B04935F58AB7097807340AC8C4" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_29193C60D6BD34772E147807340B1CED_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_29193C60D6BD34772E147807340B1CED" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_F4AF83B04935F58AB7097807340AC8C4" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_29193C60D6BD34772E147807340B1CED" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EnShapeGmbHMember" xlink:label="loc_cgnx_EnShapeGmbHMember_D128DDE15677F7F24CF47807340C7C62" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_29193C60D6BD34772E147807340B1CED" xlink:to="loc_cgnx_EnShapeGmbHMember_D128DDE15677F7F24CF47807340C7C62" 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_D31DFD4B275F38F8EF2F7807340E07BD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_D31DFD4B275F38F8EF2F7807340E07BD" 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_1064A6937422AA032BBE7807340EF998" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_1064A6937422AA032BBE7807340EF998" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment" xlink:label="loc_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_886125A2045AA3F677CC7807340EC8A0" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_886125A2045AA3F677CC7807340EC8A0" 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_7894F585A1C9904700CD7807340EFB0C" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_7894F585A1C9904700CD7807340EFB0C" 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_A42D581E4FF16EBAF6977807340F8643" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_A42D581E4FF16EBAF6977807340F8643" 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_2F7CD6AA7654B7F721FC7807340FAA84" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_2F7CD6AA7654B7F721FC7807340FAA84" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_F9CC91868D3A858F75647807340F855B" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_cgnx_Taxdeductiblegoodwill_F9CC91868D3A858F75647807340F855B" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" 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_007052BECAF12574143CE44668EB7FC6" 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_FCA0C07E6DC3FE4770F2E44668E94C94" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_FCA0C07E6DC3FE4770F2E44668E94C94" 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_3DCEE5477181DC28388AE44668E9B1E9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_FCA0C07E6DC3FE4770F2E44668E94C94" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3DCEE5477181DC28388AE44668E9B1E9" 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_508867AAAF651C022ED3E44668E9880C_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3DCEE5477181DC28388AE44668E9B1E9" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_508867AAAF651C022ED3E44668E9880C_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_508867AAAF651C022ED3E44668E9880C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3DCEE5477181DC28388AE44668E9B1E9" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_508867AAAF651C022ED3E44668E9880C" 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_0E45A055A90530250FD5E44668E96107" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_508867AAAF651C022ED3E44668E9880C" xlink:to="loc_us-gaap_CustomerRelationshipsMember_0E45A055A90530250FD5E44668E96107" 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_BE38F41610CF3384672AE44668EA949E" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_508867AAAF651C022ED3E44668E9880C" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_BE38F41610CF3384672AE44668EA949E" 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_5B79A382F36D7D88337DE44668EA2E06" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_FCA0C07E6DC3FE4770F2E44668E94C94" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_5B79A382F36D7D88337DE44668EA2E06" 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_8A879CF5085C6E91BC07E44668EA45CA_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_5B79A382F36D7D88337DE44668EA2E06" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8A879CF5085C6E91BC07E44668EA45CA_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_8A879CF5085C6E91BC07E44668EA45CA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_5B79A382F36D7D88337DE44668EA2E06" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8A879CF5085C6E91BC07E44668EA45CA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EnShapeGmbHMember" xlink:label="loc_cgnx_EnShapeGmbHMember_30B60358EAC69D15F852E44668EA6153" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8A879CF5085C6E91BC07E44668EA45CA" xlink:to="loc_cgnx_EnShapeGmbHMember_30B60358EAC69D15F852E44668EA6153" 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_ABD0981D67B206FEE790E44668EBD9D0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_ABD0981D67B206FEE790E44668EBD9D0" 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_EBE62AC2CAC174C07CDCE44668EB62CC" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_EBE62AC2CAC174C07CDCE44668EB62CC" 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_279ECA11C7A8F0B66683E44668EB313E" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_279ECA11C7A8F0B66683E44668EB313E" 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_B65C9B4D5CA9FB497DCAE44668EB69C7" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_B65C9B4D5CA9FB497DCAE44668EB69C7" 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_6DE89598507EF318531CE44668ECDED0" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_6DE89598507EF318531CE44668ECDED0" 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_E1BE96D0087A900CEBAAE44668ECC647" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_E1BE96D0087A900CEBAAE44668ECC647" 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_3998DA17C6DCA0D3CF74E44668ECE7AA" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_Goodwill_3998DA17C6DCA0D3CF74E44668ECE7AA" 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_245AF3FA0523F807A8E3E44668EC413E" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_245AF3FA0523F807A8E3E44668EC413E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_0022001B7545CE29E5C2E44668EC8EF6" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_0022001B7545CE29E5C2E44668EC8EF6" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" 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_A9E1C78B180AD90E0E0CE44668ED0E6B" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_A9E1C78B180AD90E0E0CE44668ED0E6B" xlink:type="arc" />
  </link:definitionLink>
  <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_4742A2C1F30A5E4652F9E44669404077" 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_BDF49E3742CD2AA0FC31E446693EEEA2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BDF49E3742CD2AA0FC31E446693EEEA2" 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_B3FCF06AA257A6E71612E446693E2D8F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BDF49E3742CD2AA0FC31E446693EEEA2" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_B3FCF06AA257A6E71612E446693E2D8F" 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_CE019228C37705964ED0E446693FB74B_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_B3FCF06AA257A6E71612E446693E2D8F" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CE019228C37705964ED0E446693FB74B_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_CE019228C37705964ED0E446693FB74B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_B3FCF06AA257A6E71612E446693E2D8F" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CE019228C37705964ED0E446693FB74B" 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_28DD7B331274EF93463AE446693F5380" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CE019228C37705964ED0E446693FB74B" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_28DD7B331274EF93463AE446693F5380" 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_F985320A2AF5CEA34474E446693FFC4E" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CE019228C37705964ED0E446693FB74B" xlink:to="loc_us-gaap_CustomerRelationshipsMember_F985320A2AF5CEA34474E446693FFC4E" 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_0214B1634D9DCACE0DEFE4466940C8CE" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BDF49E3742CD2AA0FC31E446693EEEA2" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_0214B1634D9DCACE0DEFE4466940C8CE" 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_A68D25BBF9F3A188E453E44669403602_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_0214B1634D9DCACE0DEFE4466940C8CE" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_A68D25BBF9F3A188E453E44669403602_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_A68D25BBF9F3A188E453E44669403602" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_0214B1634D9DCACE0DEFE4466940C8CE" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_A68D25BBF9F3A188E453E44669403602" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_A68D25BBF9F3A188E453E44669403602" xlink:to="loc_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" 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_E43CC539BE8E662A97C6E446694074A3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_E43CC539BE8E662A97C6E446694074A3" 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_5520813EB7984AA0197AE44669418559" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_5520813EB7984AA0197AE44669418559" 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_5561EDF73534C4C74B6FE4466941F1EC" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5561EDF73534C4C74B6FE4466941F1EC" 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_4122D8B9C0E691306DEFE44669417135" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_4122D8B9C0E691306DEFE44669417135" 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_0F158D34B57F4FEB3ABEE44669419D1C" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_0F158D34B57F4FEB3ABEE44669419D1C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition" xlink:label="loc_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" 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_ED76C7FB2335D0D0C648E4466942A752" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_ED76C7FB2335D0D0C648E4466942A752" 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_D909BF650D29B5DA95D8E44669420D42" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_D909BF650D29B5DA95D8E44669420D42" 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_1E3D58B0E2FC356CE1B2E4466942D784" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_1E3D58B0E2FC356CE1B2E4466942D784" 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_7E327B9A4238B9AF8E71E446693766A4" 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_846951125EAC52A5BB4EE4466935E8C5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_846951125EAC52A5BB4EE4466935E8C5" 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_4409D03661884CB03A87E446693518A5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_846951125EAC52A5BB4EE4466935E8C5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4409D03661884CB03A87E446693518A5" 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_7763A02EB11D578EFBF9E44669367557_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4409D03661884CB03A87E446693518A5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_7763A02EB11D578EFBF9E44669367557_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_7763A02EB11D578EFBF9E44669367557" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4409D03661884CB03A87E446693518A5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_7763A02EB11D578EFBF9E44669367557" 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_9EA24970B8CD80DECE08E44669367535" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_7763A02EB11D578EFBF9E44669367557" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_9EA24970B8CD80DECE08E44669367535" 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_25AB28210BCE30A541F8E4466936A9D9" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_7763A02EB11D578EFBF9E44669367557" xlink:to="loc_us-gaap_CustomerRelationshipsMember_25AB28210BCE30A541F8E4466936A9D9" 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_503BDB78C8A7F064A3B6E4466936A6B2" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_846951125EAC52A5BB4EE4466935E8C5" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_503BDB78C8A7F064A3B6E4466936A6B2" 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_D239C5F43C24A53F97C1E44669366043_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_503BDB78C8A7F064A3B6E4466936A6B2" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D239C5F43C24A53F97C1E44669366043_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_D239C5F43C24A53F97C1E44669366043" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_503BDB78C8A7F064A3B6E4466936A6B2" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D239C5F43C24A53F97C1E44669366043" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_59202C9C9635FE60D790E4466937FFD2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D239C5F43C24A53F97C1E44669366043" xlink:to="loc_cgnx_GViVenturesInc.Member_59202C9C9635FE60D790E4466937FFD2" 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_2DCB152091B033692B21E4466937EB10" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_2DCB152091B033692B21E4466937EB10" 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_8ADF969054C998E95C26E44669385EAB" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_8ADF969054C998E95C26E44669385EAB" 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_F73BCF98559370BC4CA8E4466938ABE5" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_F73BCF98559370BC4CA8E4466938ABE5" 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_F1C2EADB5C056DEEAAAEE4466938908B" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_F1C2EADB5C056DEEAAAEE4466938908B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_75F752047CCEDB26B903E44669386B35" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_75F752047CCEDB26B903E44669386B35" 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_20F856232D4378E139FCE446693813DA" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_20F856232D4378E139FCE446693813DA" 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_CDD225EB85932292D794E44669381510" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_Goodwill_CDD225EB85932292D794E44669381510" 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_E99660E3037E848E4366E4466939A7A5" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_E99660E3037E848E4366E4466939A7A5" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsManateeWorksIncNarrativeDetails" 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_561904EE249E4E37E718FA5C20A2E82C" 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_98D0267B2A0C3FF83785FA5C20A09EB5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_98D0267B2A0C3FF83785FA5C20A09EB5" 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_EE038FFDE3F55B9B4ED7FA5C20A17534" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_98D0267B2A0C3FF83785FA5C20A09EB5" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_EE038FFDE3F55B9B4ED7FA5C20A17534" 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_990BEBEF0E884598CBD6FA5C20A1CDCF_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_EE038FFDE3F55B9B4ED7FA5C20A17534" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_990BEBEF0E884598CBD6FA5C20A1CDCF_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_990BEBEF0E884598CBD6FA5C20A1CDCF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_EE038FFDE3F55B9B4ED7FA5C20A17534" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_990BEBEF0E884598CBD6FA5C20A1CDCF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_F43A37FC2A48231AD35EFA5C20A1DA21" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_990BEBEF0E884598CBD6FA5C20A1CDCF" xlink:to="loc_cgnx_ManateeWorksInc.Member_F43A37FC2A48231AD35EFA5C20A1DA21" 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_EA22C665ACB370902976FA5C20A28B25" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_EA22C665ACB370902976FA5C20A28B25" 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_75DBF16B98DD2AC055D4FA5C20A252B1" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_75DBF16B98DD2AC055D4FA5C20A252B1" 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_24051CEA98480690FBA2FA5C20A2E7CD" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_24051CEA98480690FBA2FA5C20A2E7CD" 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_3A8B119315D6B2BC1D60FA5C20A2F502" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_3A8B119315D6B2BC1D60FA5C20A2F502" 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_496BBB70914E98AAECB2FA5C20A36D20" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_496BBB70914E98AAECB2FA5C20A36D20" 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_4BD97D3D261ECA707683FA5C20A3368E" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_4BD97D3D261ECA707683FA5C20A3368E" 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_B6233202DBC36AC11074FA5C20A33FBD" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_PaymentsForPreviousAcquisition_B6233202DBC36AC11074FA5C20A33FBD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_CE6F331E6D17C952F82BFA5C20A3A33E" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_CE6F331E6D17C952F82BFA5C20A3A33E" 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_2C977392B7EE1DA055C3FA5C20A42176" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_2C977392B7EE1DA055C3FA5C20A42176" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_BCE30C856A4124B26B58FA5C20A4BE63" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_cgnx_Taxdeductiblegoodwill_BCE30C856A4124B26B58FA5C20A4BE63" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" 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_F460D785C9D113CAF647E44668C9C006" 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_616CE4580F20E9FB4BC3E44668C7F5AE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F460D785C9D113CAF647E44668C9C006" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_616CE4580F20E9FB4BC3E44668C7F5AE" 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_51D4204190CD6BECBD3BE44668C785C6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_616CE4580F20E9FB4BC3E44668C7F5AE" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_51D4204190CD6BECBD3BE44668C785C6" 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_B382C67F2C2C5D8F9624E44668C7E132_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_51D4204190CD6BECBD3BE44668C785C6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B382C67F2C2C5D8F9624E44668C7E132_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_B382C67F2C2C5D8F9624E44668C7E132" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_51D4204190CD6BECBD3BE44668C785C6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B382C67F2C2C5D8F9624E44668C7E132" 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_E1A945244E76C30A70F3E44668C87F38" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B382C67F2C2C5D8F9624E44668C7E132" xlink:to="loc_us-gaap_CustomerRelationshipsMember_E1A945244E76C30A70F3E44668C87F38" 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_1998D9A59F4A0CEB7E92E44668C8220D" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B382C67F2C2C5D8F9624E44668C7E132" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_1998D9A59F4A0CEB7E92E44668C8220D" 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_D255B49F00223252F06FE44668C84E22" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_616CE4580F20E9FB4BC3E44668C7F5AE" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_D255B49F00223252F06FE44668C84E22" 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_D09603828AF766252289E44668C8586B_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_D255B49F00223252F06FE44668C84E22" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D09603828AF766252289E44668C8586B_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_D09603828AF766252289E44668C8586B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_D255B49F00223252F06FE44668C84E22" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D09603828AF766252289E44668C8586B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D09603828AF766252289E44668C8586B" xlink:to="loc_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" 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_AFA3A0E9B7DCD73FD92BE44668C9FE6E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F460D785C9D113CAF647E44668C9C006" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_AFA3A0E9B7DCD73FD92BE44668C9FE6E" 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_0243985D08329DF170D6E44668C982A6" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F460D785C9D113CAF647E44668C9C006" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_0243985D08329DF170D6E44668C982A6" 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_5428547A5F7654DB8005E44668CA2A20" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F460D785C9D113CAF647E44668C9C006" xlink:to="loc_us-gaap_Goodwill_5428547A5F7654DB8005E44668CA2A20" 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_0227BAD51F63006B4D26E44668CAAD38" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F460D785C9D113CAF647E44668C9C006" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_0227BAD51F63006B4D26E44668CAAD38" 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_3B92EFC055EC90A270B3E446692C3D3D" 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_BB9EBD18B3BB68945E48E446692B8667" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BB9EBD18B3BB68945E48E446692B8667" 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_D74539DD3D705172B47AE446692B9E38" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BB9EBD18B3BB68945E48E446692B8667" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D74539DD3D705172B47AE446692B9E38" 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_6B9C7328C480560CE791E446692BF6E1_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D74539DD3D705172B47AE446692B9E38" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6B9C7328C480560CE791E446692BF6E1_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_6B9C7328C480560CE791E446692BF6E1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D74539DD3D705172B47AE446692B9E38" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6B9C7328C480560CE791E446692BF6E1" 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_FFD6FB612729C687DE48E446692B53EB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6B9C7328C480560CE791E446692BF6E1" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_FFD6FB612729C687DE48E446692B53EB" 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_B57BC29E9C6735BB44CCE446692C22C4" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6B9C7328C480560CE791E446692BF6E1" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_B57BC29E9C6735BB44CCE446692C22C4" 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_ABAF124FA2BD47804B84E446692CF9B5" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BB9EBD18B3BB68945E48E446692B8667" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_ABAF124FA2BD47804B84E446692CF9B5" 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_76E89A8C71939B82A369E446692CCA1F_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_ABAF124FA2BD47804B84E446692CF9B5" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_76E89A8C71939B82A369E446692CCA1F_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_76E89A8C71939B82A369E446692CCA1F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_ABAF124FA2BD47804B84E446692CF9B5" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_76E89A8C71939B82A369E446692CCA1F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_4CE0FBC22111212A27B0E446692CA6C6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_76E89A8C71939B82A369E446692CCA1F" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_4CE0FBC22111212A27B0E446692CA6C6" 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_6478A9F6CC00CA19B9A1E446692DCC72" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_6478A9F6CC00CA19B9A1E446692DCC72" 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_BF48016D0CF785297E59E446692DDE5F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_BF48016D0CF785297E59E446692DDE5F" 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_30A36EA382EA482C6514E446692D9C8C" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_30A36EA382EA482C6514E446692D9C8C" 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_F6D875B3D5BF4B6A4CDEE446692DE4E3" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_F6D875B3D5BF4B6A4CDEE446692DE4E3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_6D3B9BD331A11FB272C6E446692D8A08" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_cgnx_Taxdeductiblegoodwill_6D3B9BD331A11FB272C6E446692D8A08" 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_372DEE71C2878B0A479EFA5C23B377E1" 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_EBA41652915F5D2BDABEFA5C23B1C958" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_EBA41652915F5D2BDABEFA5C23B1C958" 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_8782B204ECB487939372FA5C23B12D2E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_EBA41652915F5D2BDABEFA5C23B1C958" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8782B204ECB487939372FA5C23B12D2E" 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_A9E4E7BE06013744083FFA5C23B294CD_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8782B204ECB487939372FA5C23B12D2E" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A9E4E7BE06013744083FFA5C23B294CD_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_A9E4E7BE06013744083FFA5C23B294CD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8782B204ECB487939372FA5C23B12D2E" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A9E4E7BE06013744083FFA5C23B294CD" 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_131EFA86EDA3B2677C64FA5C23B20320" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A9E4E7BE06013744083FFA5C23B294CD" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_131EFA86EDA3B2677C64FA5C23B20320" 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_BC8D83E958AFA13AD37BFA5C23B234D7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A9E4E7BE06013744083FFA5C23B294CD" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_BC8D83E958AFA13AD37BFA5C23B234D7" 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_B851ED1F0BD3F0326CABFA5C23B23C87" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_EBA41652915F5D2BDABEFA5C23B1C958" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_B851ED1F0BD3F0326CABFA5C23B23C87" 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_EEBAC4CD48F16B253D9DFA5C23B33F77_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_B851ED1F0BD3F0326CABFA5C23B23C87" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_EEBAC4CD48F16B253D9DFA5C23B33F77_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_EEBAC4CD48F16B253D9DFA5C23B33F77" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_B851ED1F0BD3F0326CABFA5C23B23C87" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_EEBAC4CD48F16B253D9DFA5C23B33F77" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_EEBAC4CD48F16B253D9DFA5C23B33F77" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" 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_9444EE0D484083F75530FA5C23B3176D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_9444EE0D484083F75530FA5C23B3176D" 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_0F6C3CF33B7472A4E032FA5C23B45931" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_0F6C3CF33B7472A4E032FA5C23B45931" 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_1EBB5C476AAE19330163FA5C23B4985F" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_1EBB5C476AAE19330163FA5C23B4985F" 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_6E4D16DBC46CA057350CFA5C23B4E433" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_6E4D16DBC46CA057350CFA5C23B4E433" 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_42888A27CCEB0D0B44ABFA5C23B44139" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_42888A27CCEB0D0B44ABFA5C23B44139" 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_F0E41CF467FB44E9006EFA5C23B449CB" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_F0E41CF467FB44E9006EFA5C23B449CB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" 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_552C2D9537B7B0CA85B7FA5C23BA0325" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_552C2D9537B7B0CA85B7FA5C23BA0325" 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_00BE391D12C835CA0B7FFA5C23BA292C" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_00BE391D12C835CA0B7FFA5C23BA292C" 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_61A4D6B02EB2AF8F99F5FA5C23BAAA0B" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_Goodwill_61A4D6B02EB2AF8F99F5FA5C23BAAA0B" 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_1C9DC2A3A6C383C90B02FA5C23BA8844" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1C9DC2A3A6C383C90B02FA5C23BA8844" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsWebscanIncNarrativeDetails" 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_C5B9ECE8A3DD963AB607FA5C23062022" 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_2F5A4C06069F85D36E17FA5C22FF9D18" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2F5A4C06069F85D36E17FA5C22FF9D18" 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_2059E876E9635C4CE6DEFA5C22FF10EF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2F5A4C06069F85D36E17FA5C22FF9D18" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2059E876E9635C4CE6DEFA5C22FF10EF" 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_076B812E45F7231753C9FA5C230592C3_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2059E876E9635C4CE6DEFA5C22FF10EF" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3_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_076B812E45F7231753C9FA5C230592C3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2059E876E9635C4CE6DEFA5C22FF10EF" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3" 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_2092FB9C6D8DDE123B9BFA5C2305D965" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3" xlink:to="loc_us-gaap_CustomerRelationshipsMember_2092FB9C6D8DDE123B9BFA5C2305D965" 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_425C7C9056C2B5E0E015FA5C2305BE11" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_425C7C9056C2B5E0E015FA5C2305BE11" 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_AEA60FE07F221276ADE5FA5C23056084" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2F5A4C06069F85D36E17FA5C22FF9D18" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_AEA60FE07F221276ADE5FA5C23056084" 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_89E618D6AE140F11B870FA5C23052DD4_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_AEA60FE07F221276ADE5FA5C23056084" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_89E618D6AE140F11B870FA5C23052DD4_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_89E618D6AE140F11B870FA5C23052DD4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_AEA60FE07F221276ADE5FA5C23056084" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_89E618D6AE140F11B870FA5C23052DD4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_WebscanInc.Member" xlink:label="loc_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_89E618D6AE140F11B870FA5C23052DD4" xlink:to="loc_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" 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_9E0A6B971D88487BE274FA5C2306DCBC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_9E0A6B971D88487BE274FA5C2306DCBC" 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_B6540E8CE31C2E74C099FA5C23070CF0" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_B6540E8CE31C2E74C099FA5C23070CF0" 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_E0B288C9535ED8AD22D5FA5C2307085D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_E0B288C9535ED8AD22D5FA5C2307085D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="loc_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsWebscanIncPurchasePriceAllocationDetails" 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_21E13F1E2AC360A40C15E85A5C46D869" 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_BC70804D7FD9EAB762D7E85A5C41C47C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BC70804D7FD9EAB762D7E85A5C41C47C" 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_2D341E030F5EE96A2A8AE85A5C41A3D6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BC70804D7FD9EAB762D7E85A5C41C47C" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2D341E030F5EE96A2A8AE85A5C41A3D6" 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_AF23DD8399C1CC37C9F5E85A5C433ABD_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2D341E030F5EE96A2A8AE85A5C41A3D6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_AF23DD8399C1CC37C9F5E85A5C433ABD_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_AF23DD8399C1CC37C9F5E85A5C433ABD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2D341E030F5EE96A2A8AE85A5C41A3D6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_AF23DD8399C1CC37C9F5E85A5C433ABD" 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_91E5C652A113429461C6E85A5C43F18C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_AF23DD8399C1CC37C9F5E85A5C433ABD" xlink:to="loc_us-gaap_CustomerRelationshipsMember_91E5C652A113429461C6E85A5C43F18C" 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_4A7F6CD81EB1DCE50878E85A5C4322A2" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_AF23DD8399C1CC37C9F5E85A5C433ABD" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_4A7F6CD81EB1DCE50878E85A5C4322A2" 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_65F3058B4FCCC549733EE85A5C43A25E" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BC70804D7FD9EAB762D7E85A5C41C47C" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_65F3058B4FCCC549733EE85A5C43A25E" 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_0F3897426951499E1F3DE85A5C432F72_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_65F3058B4FCCC549733EE85A5C43A25E" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_0F3897426951499E1F3DE85A5C432F72_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_0F3897426951499E1F3DE85A5C432F72" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_65F3058B4FCCC549733EE85A5C43A25E" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_0F3897426951499E1F3DE85A5C432F72" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_WebscanInc.Member" xlink:label="loc_cgnx_WebscanInc.Member_E058251BF8A167215065E85A5C465615" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_0F3897426951499E1F3DE85A5C432F72" xlink:to="loc_cgnx_WebscanInc.Member_E058251BF8A167215065E85A5C465615" 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_4849529FE0F8A9F54DB4E85A5C463C27" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_4849529FE0F8A9F54DB4E85A5C463C27" 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_F91C309D931F1D8985E2E85A5C464600" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_F91C309D931F1D8985E2E85A5C464600" 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_CCD44D8F3A2D41CEF364E85A5C46878A" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_CCD44D8F3A2D41CEF364E85A5C46878A" 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_98B245034C7CEFA527C8E85A5C462215" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_98B245034C7CEFA527C8E85A5C462215" 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_FBE61D773CAA9047C0E3E85A5C46F019" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_Goodwill_FBE61D773CAA9047C0E3E85A5C46F019" 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_3C389059D9278AAC8E09E85A5C46C37A" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_3C389059D9278AAC8E09E85A5C46C37A" 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_6084DAF0458BE6D38659E85A5C46D588" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_6084DAF0458BE6D38659E85A5C46D588" 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_0258D20E789950C9A20FE483AB7E0850" 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_BF07715E09333A478944E483AB7A156F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_0258D20E789950C9A20FE483AB7E0850" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_BF07715E09333A478944E483AB7A156F" 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_29E1016D1A5870F2A308E483AB7CCC06" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_BF07715E09333A478944E483AB7A156F" xlink:to="loc_us-gaap_FinancialInstrumentAxis_29E1016D1A5870F2A308E483AB7CCC06" 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_8AC15BC6BC37A5EC8879E483AB7CBB5E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_29E1016D1A5870F2A308E483AB7CCC06" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8AC15BC6BC37A5EC8879E483AB7CBB5E_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_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_29E1016D1A5870F2A308E483AB7CCC06" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8AC15BC6BC37A5EC8879E483AB7CBB5E" 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_9C4388923D9A98BCAAD9E483AB7D35F8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_9C4388923D9A98BCAAD9E483AB7D35F8" 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_B842D4F53A65B0C7A176E483AB7CB52B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_B842D4F53A65B0C7A176E483AB7CB52B" 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_3B50743C0104D32A66BBE483AB7D8E13" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_3B50743C0104D32A66BBE483AB7D8E13" 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_E1B7F4A5E1555ED83E8BE483AB7D85B1" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_E1B7F4A5E1555ED83E8BE483AB7D85B1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_CE5809326AE3F2827315E483AB7D0EAB" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_cgnx_AgencyBondsMember_CE5809326AE3F2827315E483AB7D0EAB" 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_7F14973EF4048C8272F8E483AB7DF73C" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_MunicipalBondsMember_7F14973EF4048C8272F8E483AB7DF73C" 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_73B5712219279991DA39E483AB7E7632" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_BF07715E09333A478944E483AB7A156F" xlink:to="loc_us-gaap_InvestmentTypeAxis_73B5712219279991DA39E483AB7E7632" 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_6C10CE0E2DE1B4E3C97DE483AB7E472C_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_InvestmentTypeAxis_73B5712219279991DA39E483AB7E7632" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_6C10CE0E2DE1B4E3C97DE483AB7E472C_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_6C10CE0E2DE1B4E3C97DE483AB7E472C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_InvestmentTypeAxis_73B5712219279991DA39E483AB7E7632" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_6C10CE0E2DE1B4E3C97DE483AB7E472C" 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_D8BB69110EB9F7D83A5EE483AB7EEEE9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_6C10CE0E2DE1B4E3C97DE483AB7E472C" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_D8BB69110EB9F7D83A5EE483AB7EEEE9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LongTermInvestmentsMember" xlink:label="loc_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_6C10CE0E2DE1B4E3C97DE483AB7E472C" xlink:to="loc_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" 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_A906820175C1AD0C8C54E483AB7F3C85" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_0258D20E789950C9A20FE483AB7E0850" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_A906820175C1AD0C8C54E483AB7F3C85" 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_524D63E741364050B890E483AB7FFF1B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_0258D20E789950C9A20FE483AB7E0850" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_524D63E741364050B890E483AB7FFF1B" 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_D21A2168EC8B1942B283E483AB7F1AC0" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_0258D20E789950C9A20FE483AB7E0850" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_D21A2168EC8B1942B283E483AB7F1AC0" 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_7877AAF815A689FA615CE483AB7F151E" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_0258D20E789950C9A20FE483AB7E0850" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_7877AAF815A689FA615CE483AB7F151E" 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_D9C24B9459751CB8A18FE484A1D2B01B" 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_467564471AE44415EA4AE484A1CFF308" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_467564471AE44415EA4AE484A1CFF308" 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_48568FFECF1DF2DF8863E484A1D01F9C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_467564471AE44415EA4AE484A1CFF308" xlink:to="loc_us-gaap_FinancialInstrumentAxis_48568FFECF1DF2DF8863E484A1D01F9C" 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_BD5C4B4D506337DB8E6DE484A1D0DF6F_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_48568FFECF1DF2DF8863E484A1D01F9C" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_BD5C4B4D506337DB8E6DE484A1D0DF6F_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_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_48568FFECF1DF2DF8863E484A1D01F9C" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_BD5C4B4D506337DB8E6DE484A1D0DF6F" 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_4444A3C4C603ABF1472FE484A1D04C70" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_4444A3C4C603ABF1472FE484A1D04C70" 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_BB3E208ADD6F8273D65DE484A1D108D9" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_BB3E208ADD6F8273D65DE484A1D108D9" 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_B7C22FE796AFA5D37C27E484A1D158DE" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_B7C22FE796AFA5D37C27E484A1D158DE" 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_8B71320BFACF248D45B4E484A1D1491E" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_8B71320BFACF248D45B4E484A1D1491E" 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_64CD69BA851B27E0D5E5E484A1D25FEF" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_MunicipalBondsMember_64CD69BA851B27E0D5E5E484A1D25FEF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_031FBF2414AC071FB58AE484A1D28FB1" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_cgnx_AgencyBondsMember_031FBF2414AC071FB58AE484A1D28FB1" 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_6A8541AB04360C4DD7B8E484A1D24FAF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_Cash_6A8541AB04360C4DD7B8E484A1D24FAF" 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_9317022FA078A93DCF32E484A1D38381" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_9317022FA078A93DCF32E484A1D38381" 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_59D3F3CE1A3DF58A38E8E484A1D3E08D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_59D3F3CE1A3DF58A38E8E484A1D3E08D" 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_7F309EF6037425F7715BE484A1D3D5C7" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_7F309EF6037425F7715BE484A1D3D5C7" 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_A75ABE187795F6B8C073E484A1D4FB81" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_A75ABE187795F6B8C073E484A1D4FB81" 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_68831B3DEC31FFECDA38E484A1D4F116" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_LongTermInvestments_68831B3DEC31FFECDA38E484A1D4F116" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" 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_69E49590F34DF4DF8863E4466AEF6BB4" 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_68D89A443C49720E3211E4466AED6122" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_68D89A443C49720E3211E4466AED6122" 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_760529BE7FF8EFD06E9BE4466AED8837" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_68D89A443C49720E3211E4466AED6122" xlink:to="loc_us-gaap_FinancialInstrumentAxis_760529BE7FF8EFD06E9BE4466AED8837" 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_3DEF1788638806809EB9E4466AEDF594_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_760529BE7FF8EFD06E9BE4466AED8837" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_3DEF1788638806809EB9E4466AEDF594_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_3DEF1788638806809EB9E4466AEDF594" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_760529BE7FF8EFD06E9BE4466AED8837" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_3DEF1788638806809EB9E4466AEDF594" 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_F87E93A813B58D3B2C41E4466AEE27FB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_F87E93A813B58D3B2C41E4466AEE27FB" 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_4E7C86F1867787A29182E4466AED27AA" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_4E7C86F1867787A29182E4466AED27AA" 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_58797DA2B48CA05B2D26E4466AEE1820" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_58797DA2B48CA05B2D26E4466AEE1820" 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_D1EA5236A5B31C0B5A48E4466AEED9D8" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_D1EA5236A5B31C0B5A48E4466AEED9D8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_8F9D6E0E47B84544F6C1E4466AEE8B13" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_cgnx_AgencyBondsMember_8F9D6E0E47B84544F6C1E4466AEE8B13" 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_D5A855C527511CC10D2BE4466AEEC618" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_MunicipalBondsMember_D5A855C527511CC10D2BE4466AEEC618" 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_E37796FC7AA2AD4B8DAEE4466AEFC29A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_E37796FC7AA2AD4B8DAEE4466AEFC29A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" 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_6918716CB27DCE78B15EE4466AF05F4E" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_6918716CB27DCE78B15EE4466AF05F4E" 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_76184FF48F662D0CEC5FE4466AFBCB45" 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_4A0237F1994EF5EE9E00E4466AF8109B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" 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_InvestmentTypeAxis" xlink:label="loc_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" xlink:to="loc_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" 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_08CC3DCDB0A09FAAD5B1E4466AF8CD84_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84_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_08CC3DCDB0A09FAAD5B1E4466AF8CD84" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84" 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_D2E6EADB845958520B57E4466AF88479" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_D2E6EADB845958520B57E4466AF88479" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_LegalEntityAxis" xlink:label="loc_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" xlink:to="loc_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityDomain" xlink:label="loc_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:to="loc_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6_default" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityDomain" xlink:label="loc_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:to="loc_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6" 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_4CEB5B427D310AEFEB56E4466AF979B4" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" xlink:to="loc_us-gaap_FinancialInstrumentAxis_4CEB5B427D310AEFEB56E4466AF979B4" 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_97FC2607B0553F0F3575E4466AF9FD4C_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_4CEB5B427D310AEFEB56E4466AF979B4" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C_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_97FC2607B0553F0F3575E4466AF9FD4C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_4CEB5B427D310AEFEB56E4466AF979B4" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" 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_CD23DF5E31B4C10AB2BDE4466AFA26A6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_CD23DF5E31B4C10AB2BDE4466AFA26A6" 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_43877EFAA5E9CE93BC5EE4466AFAC7D1" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_43877EFAA5E9CE93BC5EE4466AFAC7D1" 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_967318B6D901EC5CF505E4466AFA830A" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_967318B6D901EC5CF505E4466AFA830A" 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_78B5D623801BADBA4557E4466AFA4576" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_78B5D623801BADBA4557E4466AFA4576" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" 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_B5B9E47498EB520F4AE6E4466AFAD675" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_MunicipalBondsMember_B5B9E47498EB520F4AE6E4466AFAD675" 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_0848EFC02F5167B9CA87E4466AFBEBDE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_0848EFC02F5167B9CA87E4466AFBEBDE" 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_0C17478501ABAFA03A86E4466AFB1CD7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_0C17478501ABAFA03A86E4466AFB1CD7" 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_19213711F2EE0623CC33E4466AFB973B" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_19213711F2EE0623CC33E4466AFB973B" 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_4BAB27B098E200DD6F1EE4466AFB85BF" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4BAB27B098E200DD6F1EE4466AFB85BF" 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_D1D1883FFF4B5CBA3139E4466AFC321A" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_D1D1883FFF4B5CBA3139E4466AFC321A" 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_8DA5D3E3AFFCE794F347E4466AFC6B26" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_8DA5D3E3AFFCE794F347E4466AFC6B26" 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/CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesTables" 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_3A597B3C1F922C662789E38380E26A8A" 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_868364AEB5768627AA65E38380E0E436" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_3A597B3C1F922C662789E38380E26A8A" xlink:to="loc_us-gaap_StatementTable_868364AEB5768627AA65E38380E0E436" 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_8E6D47EFC153B52BA842E38380E0446A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_868364AEB5768627AA65E38380E0E436" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_8E6D47EFC153B52BA842E38380E0446A" 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_1F5EC07BF5ECAD16ECCAE38380E12B96_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_8E6D47EFC153B52BA842E38380E0446A" xlink:to="loc_us-gaap_EquityComponentDomain_1F5EC07BF5ECAD16ECCAE38380E12B96_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_1F5EC07BF5ECAD16ECCAE38380E12B96" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_8E6D47EFC153B52BA842E38380E0446A" xlink:to="loc_us-gaap_EquityComponentDomain_1F5EC07BF5ECAD16ECCAE38380E12B96" 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_0B64355C3BB488A6392CE38380E171A2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_1F5EC07BF5ECAD16ECCAE38380E12B96" xlink:to="loc_us-gaap_CommonStockMember_0B64355C3BB488A6392CE38380E171A2" 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_C7160B48467D0AF91212E38380E18C0E" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_1F5EC07BF5ECAD16ECCAE38380E12B96" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_C7160B48467D0AF91212E38380E18C0E" 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_CF79D0AB22D149041E2CE38380E1B354" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_1F5EC07BF5ECAD16ECCAE38380E12B96" xlink:to="loc_us-gaap_RetainedEarningsMember_CF79D0AB22D149041E2CE38380E1B354" 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_47B3D339793462916CC7E38380E23B7A" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_1F5EC07BF5ECAD16ECCAE38380E12B96" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_47B3D339793462916CC7E38380E23B7A" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_3A597B3C1F922C662789E38380E26A8A" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" 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_C90DC67383C87336180EE38380E27A44" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockholdersEquity_C90DC67383C87336180EE38380E27A44" 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_AD5113D58B7C02D800F1E38380E3B828" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_CommonStockSharesIssued_AD5113D58B7C02D800F1E38380E3B828" 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_46800B2F24558241C1FCE38380E34BA5" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_46800B2F24558241C1FCE38380E34BA5" 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_2BD406D0F5091FF5DFA2E38380E3988D" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2BD406D0F5091FF5DFA2E38380E3988D" 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_465A3B686E01BA57D2ABE38380E39E33" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_465A3B686E01BA57D2ABE38380E39E33" 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_B36B4C1AA19167ED9357E38380E36F24" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_B36B4C1AA19167ED9357E38380E36F24" 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_2F406EB602CC2E15D0A3E38380E3E8C7" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_2F406EB602CC2E15D0A3E38380E3E8C7" 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_C7934A62846F30712F11E38380E4B5C6" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_DividendsCommonStockCash_C7934A62846F30712F11E38380E4B5C6" 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_36A4A286DAC837621F4FE38380E41C3C" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_36A4A286DAC837621F4FE38380E41C3C" 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_3190C7FE4382FA76DE7BE38380E42A85" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_NetIncomeLoss_3190C7FE4382FA76DE7BE38380E42A85" 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_A6D729314FCC7806EA10E38380E4BB6F" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A6D729314FCC7806EA10E38380E4BB6F" 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_2D0204D19BC507FAAE1EE38380E4EB42" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_2D0204D19BC507FAAE1EE38380E4EB42" 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_82193FFA010AF0EC3B16E38380E55CA4" xlink:type="locator" />
    <link:definitionArc order="13" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_82193FFA010AF0EC3B16E38380E55CA4" 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_F32690DC449614F60EB3E38380E503A4" xlink:type="locator" />
    <link:definitionArc order="14" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_F32690DC449614F60EB3E38380E503A4" 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_18D69DF9D198D6E64029E38380E5905E" xlink:type="locator" />
    <link:definitionArc order="15" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_18D69DF9D198D6E64029E38380E5905E" 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/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_80D98D12E4A0A4C50ADEE4466A6B6443" 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_2C7E25688508A5A23388E4466A6961F0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_80D98D12E4A0A4C50ADEE4466A6B6443" xlink:to="loc_us-gaap_DerivativeTable_2C7E25688508A5A23388E4466A6961F0" 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_9AA1E7EF818CF7544780E4466A6A8138" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_2C7E25688508A5A23388E4466A6961F0" xlink:to="loc_us-gaap_HedgingDesignationAxis_9AA1E7EF818CF7544780E4466A6A8138" 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_E0DA58411E5525C62067E4466A6A09CD_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_9AA1E7EF818CF7544780E4466A6A8138" xlink:to="loc_us-gaap_HedgingDesignationDomain_E0DA58411E5525C62067E4466A6A09CD_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_E0DA58411E5525C62067E4466A6A09CD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_9AA1E7EF818CF7544780E4466A6A8138" xlink:to="loc_us-gaap_HedgingDesignationDomain_E0DA58411E5525C62067E4466A6A09CD" 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_2DEFAB0317CAAD139C1DE4466A6AF4E4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_E0DA58411E5525C62067E4466A6A09CD" xlink:to="loc_us-gaap_NondesignatedMember_2DEFAB0317CAAD139C1DE4466A6AF4E4" 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_42372A1DCA6D9593C8E4E4466A6A170C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_E0DA58411E5525C62067E4466A6A09CD" xlink:to="loc_us-gaap_DesignatedAsHedgingInstrumentMember_42372A1DCA6D9593C8E4E4466A6A170C" 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_008CBFDC8A719E21F774E4466A6B5DAE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_80D98D12E4A0A4C50ADEE4466A6B6443" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_008CBFDC8A719E21F774E4466A6B5DAE" 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_3CB8729D9CEB63FAC26BE4466A6BC301" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_80D98D12E4A0A4C50ADEE4466A6B6443" xlink:to="loc_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_3CB8729D9CEB63FAC26BE4466A6BC301" 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_2706D5966C1F96EBA489E3837EA3A73D" 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_CE7E95692C4D2BA9717FE3837EA0F4C6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_2706D5966C1F96EBA489E3837EA3A73D" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_CE7E95692C4D2BA9717FE3837EA0F4C6" 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_A1B80C70F3F1D849B6E5E3837EA0CCB1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_CE7E95692C4D2BA9717FE3837EA0F4C6" xlink:to="loc_us-gaap_HedgingDesignationAxis_A1B80C70F3F1D849B6E5E3837EA0CCB1" 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_27EC0EC7664302EA0D52E3837EA12798_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_A1B80C70F3F1D849B6E5E3837EA0CCB1" xlink:to="loc_us-gaap_HedgingDesignationDomain_27EC0EC7664302EA0D52E3837EA12798_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_27EC0EC7664302EA0D52E3837EA12798" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_A1B80C70F3F1D849B6E5E3837EA0CCB1" xlink:to="loc_us-gaap_HedgingDesignationDomain_27EC0EC7664302EA0D52E3837EA12798" 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_B7D0FE30E946467B6806E3837EA21F91" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_27EC0EC7664302EA0D52E3837EA12798" xlink:to="loc_us-gaap_NondesignatedMember_B7D0FE30E946467B6806E3837EA21F91" 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_C5BFDF1A4E9290DA2A74E3837EA23BC0" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_CE7E95692C4D2BA9717FE3837EA0F4C6" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_C5BFDF1A4E9290DA2A74E3837EA23BC0" 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_4A0274147AA6E563B1E8E3837EA26F8A_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_C5BFDF1A4E9290DA2A74E3837EA23BC0" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A_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_4A0274147AA6E563B1E8E3837EA26F8A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_C5BFDF1A4E9290DA2A74E3837EA23BC0" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A" 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_B351AE0A8F345EC82417E3837EA2C051" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A" xlink:to="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_B351AE0A8F345EC82417E3837EA2C051" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AccruedExpensesMember" xlink:label="loc_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A" xlink:to="loc_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" 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_556CF7BB007EC510E179E3837EA349BB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_2706D5966C1F96EBA489E3837EA3A73D" xlink:to="loc_us-gaap_DerivativeAssets_556CF7BB007EC510E179E3837EA349BB" 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_256147E0B68891D8431DE3837EA320AF" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_2706D5966C1F96EBA489E3837EA3A73D" xlink:to="loc_us-gaap_DerivativeLiabilities_256147E0B68891D8431DE3837EA320AF" 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_17053031F14FE0EDF7A7E4875E86B40A" 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_9E52542412FFD214C220E4875E853C27" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_17053031F14FE0EDF7A7E4875E86B40A" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9E52542412FFD214C220E4875E853C27" 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_804935AF4C8CC624DC97E4875E8518AE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9E52542412FFD214C220E4875E853C27" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_804935AF4C8CC624DC97E4875E8518AE" 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_89AE2E6B53117450EEC6E4875E852D6E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_804935AF4C8CC624DC97E4875E8518AE" xlink:to="loc_us-gaap_EquityComponentDomain_89AE2E6B53117450EEC6E4875E852D6E_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_89AE2E6B53117450EEC6E4875E852D6E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_804935AF4C8CC624DC97E4875E8518AE" xlink:to="loc_us-gaap_EquityComponentDomain_89AE2E6B53117450EEC6E4875E852D6E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember" xlink:label="loc_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_89AE2E6B53117450EEC6E4875E852D6E" xlink:to="loc_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7" 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_3A13550226DCF2F7CE2CE4875E86079A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_17053031F14FE0EDF7A7E4875E86B40A" xlink:to="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" 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_80F5066218EDAD317773E4875E87162D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_80F5066218EDAD317773E4875E87162D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax" xlink:label="loc_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" xlink:to="loc_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494" 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_1528C7077E7092F73ECBCD8D368DE5FF" 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_08CAF89255C722B0ED75CD8D368A1E88" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_08CAF89255C722B0ED75CD8D368A1E88" 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_D7EB1939CBDC6FA5B3ACCD8D368A4078" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_08CAF89255C722B0ED75CD8D368A1E88" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078" 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_B151D29F77A7A69B578ACD8D368A04ED_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED_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_B151D29F77A7A69B578ACD8D368A04ED" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" 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_1B40DCFF4F76F73DBEB0CD8D368B2A9A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_CashFlowHedgingMember_1B40DCFF4F76F73DBEB0CD8D368B2A9A" 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_4113C684929997FAC2AFCD8D368BBFE4" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_SalesRevenueGoodsNetMember_4113C684929997FAC2AFCD8D368BBFE4" 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_6E69F9E70DFDDA49E5CECD8D368B1E4D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_6E69F9E70DFDDA49E5CECD8D368B1E4D" 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_19870686205552BC6606CD8D368B11BD" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpenseMember_19870686205552BC6606CD8D368B11BD" 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_D2F53AB7844F2CD5099FCD8D368CE6D9" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_ForeignCurrencyGainLossMember_D2F53AB7844F2CD5099FCD8D368CE6D9" 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_E0234162649E35305035CD8D368CB971" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_08CAF89255C722B0ED75CD8D368A1E88" xlink:to="loc_us-gaap_HedgingDesignationAxis_E0234162649E35305035CD8D368CB971" 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_5B0307AC789E7FDE62D6CD8D368CAC37_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_E0234162649E35305035CD8D368CB971" xlink:to="loc_us-gaap_HedgingDesignationDomain_5B0307AC789E7FDE62D6CD8D368CAC37_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_5B0307AC789E7FDE62D6CD8D368CAC37" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_E0234162649E35305035CD8D368CB971" xlink:to="loc_us-gaap_HedgingDesignationDomain_5B0307AC789E7FDE62D6CD8D368CAC37" 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_9CC9C863F425EF1CE4C9CD8D368C49B4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_5B0307AC789E7FDE62D6CD8D368CAC37" xlink:to="loc_us-gaap_DesignatedAsHedgingInstrumentMember_9CC9C863F425EF1CE4C9CD8D368C49B4" 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_E1DC4380DA914B78DE53CD8D368DA3CA" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_5B0307AC789E7FDE62D6CD8D368CAC37" xlink:to="loc_us-gaap_NondesignatedMember_E1DC4380DA914B78DE53CD8D368DA3CA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32" 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_7DF8BD7322958C84EE7ACD8D368D5C24" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_7DF8BD7322958C84EE7ACD8D368D5C24" 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_3CB5BFC3B09DC1E0D749CD8D368E227A" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_3CB5BFC3B09DC1E0D749CD8D368E227A" 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_A1A901E80B3AE8B18368CD8D368EDA06" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_A1A901E80B3AE8B18368CD8D368EDA06" 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_E741E94DC777DBC2CE7BCD8D368EE6CD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_A1A901E80B3AE8B18368CD8D368EDA06" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_E741E94DC777DBC2CE7BCD8D368EE6CD" 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_E73E2729B84D6B84DA9AE3837EB8C618" 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_801171ED76C8F9D20D60E3837EAE6EBA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_E73E2729B84D6B84DA9AE3837EB8C618" xlink:to="loc_us-gaap_DerivativeTable_801171ED76C8F9D20D60E3837EAE6EBA" 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_ACF01A5163E8CC592EF4E3837EAFACF4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_801171ED76C8F9D20D60E3837EAE6EBA" xlink:to="loc_us-gaap_HedgingDesignationAxis_ACF01A5163E8CC592EF4E3837EAFACF4" 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_475CF75AC74B97D299C5E3837EAFCFB7_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_ACF01A5163E8CC592EF4E3837EAFACF4" xlink:to="loc_us-gaap_HedgingDesignationDomain_475CF75AC74B97D299C5E3837EAFCFB7_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_475CF75AC74B97D299C5E3837EAFCFB7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_ACF01A5163E8CC592EF4E3837EAFACF4" xlink:to="loc_us-gaap_HedgingDesignationDomain_475CF75AC74B97D299C5E3837EAFCFB7" 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_FDF4CAD18900BF36DA7FE3837EB08563" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_475CF75AC74B97D299C5E3837EAFCFB7" xlink:to="loc_us-gaap_NondesignatedMember_FDF4CAD18900BF36DA7FE3837EB08563" 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_A9DA62630432CEEF6E40E3837EB0F844" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_801171ED76C8F9D20D60E3837EAE6EBA" xlink:to="loc_srt_CurrencyAxis_A9DA62630432CEEF6E40E3837EB0F844" 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_223CEB91D9C2AB46295BE3837EB05615_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CurrencyAxis_A9DA62630432CEEF6E40E3837EB0F844" xlink:to="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615_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_223CEB91D9C2AB46295BE3837EB05615" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CurrencyAxis_A9DA62630432CEEF6E40E3837EB0F844" xlink:to="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" 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_6825D1E21FB032D841ACE3837EB22C02" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_EUR_6825D1E21FB032D841ACE3837EB22C02" 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_0A921F816429DC65DDECE3837EB0CF5E" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_JPY_0A921F816429DC65DDECE3837EB0CF5E" 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_6813A2CDAD8EBEEC8B1CE3837EB12304" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_GBP_6813A2CDAD8EBEEC8B1CE3837EB12304" 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_1E768CECBE67C949F7F0E3837EB11DA7" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_KRW_1E768CECBE67C949F7F0E3837EB11DA7" 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_C9A649965625BEE19180E3837EB1A68D" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_HUF_C9A649965625BEE19180E3837EB1A68D" 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_94BF3FA900A31B7FAD76E3837EB7C94C" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_TWD_94BF3FA900A31B7FAD76E3837EB7C94C" 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_762052C1B580F7D0B902E3837EB7FB81" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_CAD_762052C1B580F7D0B902E3837EB7FB81" 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_3A7D73C2F29C8C6F03E5E3837EB1A76C" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_SGD_3A7D73C2F29C8C6F03E5E3837EB1A76C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_CHF" xlink:label="loc_currency_CHF_1594E3AB5AD77241969AE3837EB78C51" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_CHF_1594E3AB5AD77241969AE3837EB78C51" 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_55D5B9197506301EA3E5E3837EB8DA76" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_E73E2729B84D6B84DA9AE3837EB8C618" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_55D5B9197506301EA3E5E3837EB8DA76" 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/DiscontinuedOperations" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/DiscontinuedOperationsDetails" 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_D2D06D8B56E81EEA67E7E446695CAC97" 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_D06528818772660002EFE44669579761" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_us-gaap_StatementTable_D06528818772660002EFE44669579761" 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_LitigationStatusAxis" xlink:label="loc_us-gaap_LitigationStatusAxis_566F81D3B4D89AC6BA29E4466957BC88" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_LitigationStatusAxis_566F81D3B4D89AC6BA29E4466957BC88" 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_AB4AFE05F99E3F5BC688E44669584830_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LitigationStatusAxis_566F81D3B4D89AC6BA29E4466957BC88" xlink:to="loc_us-gaap_LitigationStatusDomain_AB4AFE05F99E3F5BC688E44669584830_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_AB4AFE05F99E3F5BC688E44669584830" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LitigationStatusAxis_566F81D3B4D89AC6BA29E4466957BC88" xlink:to="loc_us-gaap_LitigationStatusDomain_AB4AFE05F99E3F5BC688E44669584830" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SettledLitigationMember" xlink:label="loc_us-gaap_SettledLitigationMember_AC2107C41101AFC8EEC6E446695857DA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LitigationStatusDomain_AB4AFE05F99E3F5BC688E44669584830" xlink:to="loc_us-gaap_SettledLitigationMember_AC2107C41101AFC8EEC6E446695857DA" 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_36580B6DADF269737E01E4466958964A" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_srt_LitigationCaseAxis_36580B6DADF269737E01E4466958964A" 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_1B6D8201AE8C5F22713BE44669582A0E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_LitigationCaseAxis_36580B6DADF269737E01E4466958964A" xlink:to="loc_srt_LitigationCaseTypeDomain_1B6D8201AE8C5F22713BE44669582A0E_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_1B6D8201AE8C5F22713BE44669582A0E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_LitigationCaseAxis_36580B6DADF269737E01E4466958964A" xlink:to="loc_srt_LitigationCaseTypeDomain_1B6D8201AE8C5F22713BE44669582A0E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AMETEKMatterMember" xlink:label="loc_cgnx_AMETEKMatterMember_93B9873DEFFEB1FEB325E4466959CC6F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_LitigationCaseTypeDomain_1B6D8201AE8C5F22713BE44669582A0E" xlink:to="loc_cgnx_AMETEKMatterMember_93B9873DEFFEB1FEB325E4466959CC6F" 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_474B618E88021F9386C0E44669593D50" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_474B618E88021F9386C0E44669593D50" 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_388D474419B5EC8644B3E446695954AB_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_474B618E88021F9386C0E44669593D50" xlink:to="loc_us-gaap_LossContingencyNatureDomain_388D474419B5EC8644B3E446695954AB_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_388D474419B5EC8644B3E446695954AB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_474B618E88021F9386C0E44669593D50" xlink:to="loc_us-gaap_LossContingencyNatureDomain_388D474419B5EC8644B3E446695954AB" 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_88A3DD2B1861842153A4E4466959974E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingencyNatureDomain_388D474419B5EC8644B3E446695954AB" xlink:to="loc_us-gaap_GuaranteeObligationsMember_88A3DD2B1861842153A4E4466959974E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOperatingActivitiesSegmentAxis" xlink:label="loc_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentOperatingActivitiesDomain" xlink:label="loc_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:to="loc_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentOperatingActivitiesDomain" xlink:label="loc_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:to="loc_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_559C5B1C31B5711F2B2DE446695A5133" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_559C5B1C31B5711F2B2DE446695A5133" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E43DAE4766671B2B4982E446695AFCE9" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E43DAE4766671B2B4982E446695AFCE9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_B1B552C9CFF092C75BA7E446695B7E2B_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E43DAE4766671B2B4982E446695AFCE9" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_B1B552C9CFF092C75BA7E446695B7E2B_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_B1B552C9CFF092C75BA7E446695B7E2B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E43DAE4766671B2B4982E446695AFCE9" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_B1B552C9CFF092C75BA7E446695B7E2B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SisdMember" xlink:label="loc_cgnx_SisdMember_329B1064119309FEA309E446695B1FFB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_B1B552C9CFF092C75BA7E446695B7E2B" xlink:to="loc_cgnx_SisdMember_329B1064119309FEA309E446695B1FFB" 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_B81781072576327D242FE446695BDCCE" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_B81781072576327D242FE446695BDCCE" 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_45A4929AA3A8BA3A3788E446695BDD8F_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_B81781072576327D242FE446695BDCCE" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_45A4929AA3A8BA3A3788E446695BDD8F_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_45A4929AA3A8BA3A3788E446695BDD8F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_B81781072576327D242FE446695BDCCE" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_45A4929AA3A8BA3A3788E446695BDD8F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_18B49871DCECD998320AE446695C6519" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisposalGroupClassificationDomain_45A4929AA3A8BA3A3788E446695BDD8F" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_18B49871DCECD998320AE446695C6519" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_E2D765904A1A7CA4FD25E446695CAD69" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_E2D765904A1A7CA4FD25E446695CAD69" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_C828454C9C38FBCEE554E446695C3697" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_C828454C9C38FBCEE554E446695C3697" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationSettlementExpense" xlink:label="loc_us-gaap_LitigationSettlementExpense_BB05243CDA7AE539D6EDE446695C68E4" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_us-gaap_LitigationSettlementExpense_BB05243CDA7AE539D6EDE446695C68E4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LegalFees" xlink:label="loc_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation" xlink:label="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_6905DA3B92979E6B25DCE446695DC354" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_6905DA3B92979E6B25DCE446695DC354" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_5D91F7DD2D700CD4226BE446695DF386" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_5D91F7DD2D700CD4226BE446695DF386" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" 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_14AF77ADFA0F65076F0FE3837C6A434E" 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_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E" xlink:to="loc_us-gaap_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" 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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SisdMember" xlink:label="loc_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:to="loc_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" 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_E52413417767BBCCF0BAE3837C690D61" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_E52413417767BBCCF0BAE3837C690D61" 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_3EEB285A3290F062ADDAE3837C6A8625_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_E52413417767BBCCF0BAE3837C690D61" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625_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_3EEB285A3290F062ADDAE3837C6A8625" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_E52413417767BBCCF0BAE3837C690D61" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation" xlink:label="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E" xlink:to="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_D312FC891ABAB7CCDC40E3837C6B2B2C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_D312FC891ABAB7CCDC40E3837C6B2B2C" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/DiscontinuedOperationsTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/DocumentAndEntityInformation" 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_4FAAFF225E2C77944C1377F2319D2F7C" 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_B74D1CBEE07CFBA53A7C77F2319B9C76" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_us-gaap_DefinedContributionPlanTable_B74D1CBEE07CFBA53A7C77F2319B9C76" 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_A7CC5C1283C8BA1569ED77F2319C219C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DefinedContributionPlanTable_B74D1CBEE07CFBA53A7C77F2319B9C76" xlink:to="loc_us-gaap_TitleOfIndividualAxis_A7CC5C1283C8BA1569ED77F2319C219C" 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_29A4BF292B23FD469CEC77F2319CDAB0_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TitleOfIndividualAxis_A7CC5C1283C8BA1569ED77F2319C219C" xlink:to="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0_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_29A4BF292B23FD469CEC77F2319CDAB0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TitleOfIndividualAxis_A7CC5C1283C8BA1569ED77F2319C219C" xlink:to="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_HighlyCompensatedEmployeeMember" xlink:label="loc_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0" xlink:to="loc_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" 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_E1962C5D75867D80A3E977F2319D6331" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_E1962C5D75867D80A3E977F2319D6331" 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_97745FD84D04D328054377F2319DFA85" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_97745FD84D04D328054377F2319DFA85" 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_E2C85D3618014E788B9377F2319D5800" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_E2C85D3618014E788B9377F2319D5800" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfFiveYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" 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_C393B603CEDD9A031DFB77F2319E20A0" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_C393B603CEDD9A031DFB77F2319E20A0" 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_C4027D99DAC87C9B68ECE3A8740FB523" 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_67C4E8A249C1D007C99FE3A8740D4EA7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_67C4E8A249C1D007C99FE3A8740D4EA7" 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_DBC12D7AC07CB42AD583E3A8740DB3C3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_67C4E8A249C1D007C99FE3A8740D4EA7" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_DBC12D7AC07CB42AD583E3A8740DB3C3" 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_03CC19977D54E95396AFE3A8740E68D7_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_DBC12D7AC07CB42AD583E3A8740DB3C3" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7_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_03CC19977D54E95396AFE3A8740E68D7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_DBC12D7AC07CB42AD583E3A8740DB3C3" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7" 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_31533A7E4D9E72354C70E3A8740E4E1A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_31533A7E4D9E72354C70E3A8740E4E1A" 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_FD6C4790C160277ACAA8E3A8740E932D" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_FD6C4790C160277ACAA8E3A8740E932D" 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_3270998686FE2E2EE047E3A8740E09B9" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_3270998686FE2E2EE047E3A8740E09B9" 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_F8D14156C98C7D645E07E3A8740F1073" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_67C4E8A249C1D007C99FE3A8740D4EA7" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_F8D14156C98C7D645E07E3A8740F1073" 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_EAD55EB273999ECD76B6E3A8740F026E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_F8D14156C98C7D645E07E3A8740F1073" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_EAD55EB273999ECD76B6E3A8740F026E_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_EAD55EB273999ECD76B6E3A8740F026E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_F8D14156C98C7D645E07E3A8740F1073" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_EAD55EB273999ECD76B6E3A8740F026E" 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_0A3D5D4955A14B7B953EE3A8740FA817" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_EAD55EB273999ECD76B6E3A8740F026E" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_0A3D5D4955A14B7B953EE3A8740FA817" 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_11E560D315DDFBE8E796E3A8740F13AD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetImpairment_11E560D315DDFBE8E796E3A8740F13AD" 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_DE94A5834407ECC875F2E3A87410A2DF" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_C54B3A83CD0321F97E8CE3A87410A5F1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_C54B3A83CD0321F97E8CE3A87410A5F1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CorporateBondsFairValueDisclosure" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_DC32F32A85AC6AF79308E3A8741089D5" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_DC32F32A85AC6AF79308E3A8741089D5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TreasuryBillsFairValueDisclosure" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_D305213D416B08E09CC3E3A87410617D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_D305213D416B08E09CC3E3A87410617D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_572B4D50CD903A16AAEAE3A874104AA9" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_572B4D50CD903A16AAEAE3A874104AA9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SovereignBondsFairValueDisclosure" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_33E041BD8395A37B4EA2E3A874108C6D" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_33E041BD8395A37B4EA2E3A874108C6D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsFairValueDisclosure" xlink:label="loc_cgnx_AgencyBondsFairValueDisclosure_C8C459B6B4415B22FAF2E3A8741104D7" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:to="loc_cgnx_AgencyBondsFairValueDisclosure_C8C459B6B4415B22FAF2E3A8741104D7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MunicipalBondsFairValueDisclosure" xlink:label="loc_cgnx_MunicipalBondsFairValueDisclosure_BA8F3146DD4F146859ECE3A874114C48" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:to="loc_cgnx_MunicipalBondsFairValueDisclosure_BA8F3146DD4F146859ECE3A874114C48" 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_BC26EF06AD35FCF4441FE3A874115F77" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_BC26EF06AD35FCF4441FE3A874115F77" 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_065F6F34DD2A5CA99136E3A874111207" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_065F6F34DD2A5CA99136E3A874111207" 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_86C17ECCF4AD1AC388F2E3A874117D55" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_065F6F34DD2A5CA99136E3A874111207" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_86C17ECCF4AD1AC388F2E3A874117D55" 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_F15172183960A71EA576E3A87411643F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_065F6F34DD2A5CA99136E3A874111207" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_F15172183960A71EA576E3A87411643F" 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_4F9E374DAD14171BF9E9E3A874117285" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_4F9E374DAD14171BF9E9E3A874117285" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" xlink:label="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_A379D15D88F63F2D4F81E3A87412819B" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" xlink:to="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_A379D15D88F63F2D4F81E3A87412819B" 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_536E7B392B71EEF31E99B9B05A2C0867" 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_374CA037E0A434BE9857B9B05A2BCB99" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_536E7B392B71EEF31E99B9B05A2C0867" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_374CA037E0A434BE9857B9B05A2BCB99" 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_80E16DD590D31D5E1C42B9B05A2B4BC9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_374CA037E0A434BE9857B9B05A2BCB99" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_80E16DD590D31D5E1C42B9B05A2B4BC9" 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_D638CB27F467784F5E91B9B05A2BE45D_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_80E16DD590D31D5E1C42B9B05A2B4BC9" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D638CB27F467784F5E91B9B05A2BE45D_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_D638CB27F467784F5E91B9B05A2BE45D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_80E16DD590D31D5E1C42B9B05A2B4BC9" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D638CB27F467784F5E91B9B05A2BE45D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EnShapeGmbHMember" xlink:label="loc_cgnx_EnShapeGmbHMember_7879B960B5350463F4E4B9BE7C0A4CFE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D638CB27F467784F5E91B9B05A2BE45D" xlink:to="loc_cgnx_EnShapeGmbHMember_7879B960B5350463F4E4B9BE7C0A4CFE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_7DA7F850264DD2CDDB63B9B05A2C2D11" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D638CB27F467784F5E91B9B05A2BE45D" xlink:to="loc_cgnx_ManateeWorksInc.Member_7DA7F850264DD2CDDB63B9B05A2C2D11" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_17F923C3584BABE19B93B9B05A2CFEF5" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D638CB27F467784F5E91B9B05A2BE45D" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_17F923C3584BABE19B93B9B05A2CFEF5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_92CB6515BD89D05C2354B9B05A2CC43A" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D638CB27F467784F5E91B9B05A2BE45D" xlink:to="loc_cgnx_GViVenturesInc.Member_92CB6515BD89D05C2354B9B05A2CC43A" 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_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_536E7B392B71EEF31E99B9B05A2C0867" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" 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_A7B04BA8B4B849578E6BB9B05A2D51AE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_A7B04BA8B4B849578E6BB9B05A2D51AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E" 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_F1F97329B712955806CBB9B05A2D62AB" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_LiabilitiesFairValueAdjustment_F1F97329B712955806CBB9B05A2D62AB" 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_E82288B2EE7BFF1D0836B9B05A2DC638" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_E82288B2EE7BFF1D0836B9B05A2DC638" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944" 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_846B141FB4EAA8A1E9DBE3837F82FA31" 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_84F7206FF233199D23D5E3837F7B4B7A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_GoodwillLineItems_846B141FB4EAA8A1E9DBE3837F82FA31" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_84F7206FF233199D23D5E3837F7B4B7A" 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_00142331D38E141BEDF3E3837F7C1798" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_84F7206FF233199D23D5E3837F7B4B7A" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_00142331D38E141BEDF3E3837F7C1798" 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_015ACA1FDC9AACA53382E3837F7C7FC1_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_00142331D38E141BEDF3E3837F7C1798" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_015ACA1FDC9AACA53382E3837F7C7FC1_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_015ACA1FDC9AACA53382E3837F7C7FC1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_00142331D38E141BEDF3E3837F7C1798" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_015ACA1FDC9AACA53382E3837F7C7FC1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_2B6E2D26B314CEB82171E3ADAE2AACE5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_015ACA1FDC9AACA53382E3837F7C7FC1" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_2B6E2D26B314CEB82171E3ADAE2AACE5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_B301793D6BC6CF5AB9E2E3AE043B96FA" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_015ACA1FDC9AACA53382E3837F7C7FC1" xlink:to="loc_cgnx_GViVenturesInc.Member_B301793D6BC6CF5AB9E2E3AE043B96FA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EnShapeGmbHMember" xlink:label="loc_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_015ACA1FDC9AACA53382E3837F7C7FC1" xlink:to="loc_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" 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_5966181102F761940A94E3837F83293A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillLineItems_846B141FB4EAA8A1E9DBE3837F82FA31" xlink:to="loc_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A" 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_C453030ABBD872DC7AE4E3837F83749D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A" xlink:to="loc_us-gaap_Goodwill_C453030ABBD872DC7AE4E3837F83749D" 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_29171BFB9EC475851E64E3837F8376A5" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A" xlink:to="loc_us-gaap_GoodwillAcquiredDuringPeriod_29171BFB9EC475851E64E3837F8376A5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillPeriodIncreaseDecrease" xlink:label="loc_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A" xlink:to="loc_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67" 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_83E7B97EFAE02C2442B6E4466A7BD734" 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_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:to="loc_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" 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_3C854BF9CE23C6B03426E4466A7706FC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_3C854BF9CE23C6B03426E4466A7706FC" 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_CEF20F5809EEA2283E4AE4466A77E608_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_3C854BF9CE23C6B03426E4466A7706FC" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_CEF20F5809EEA2283E4AE4466A77E608_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_CEF20F5809EEA2283E4AE4466A77E608" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_3C854BF9CE23C6B03426E4466A7706FC" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_CEF20F5809EEA2283E4AE4466A77E608" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_63C1A0370BD219F05F70E4466A780476" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisposalGroupClassificationDomain_CEF20F5809EEA2283E4AE4466A77E608" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_63C1A0370BD219F05F70E4466A780476" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_68377DD3E32E89B72B68E4466A7804FF" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_68377DD3E32E89B72B68E4466A7804FF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_EC563983707A60362EC4E4466A78FE08_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_68377DD3E32E89B72B68E4466A7804FF" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_EC563983707A60362EC4E4466A78FE08_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_EC563983707A60362EC4E4466A78FE08" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_68377DD3E32E89B72B68E4466A7804FF" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_EC563983707A60362EC4E4466A78FE08" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SisdMember" xlink:label="loc_cgnx_SisdMember_15A6263B819E55937F4BE4466A788974" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_EC563983707A60362EC4E4466A78FE08" xlink:to="loc_cgnx_SisdMember_15A6263B819E55937F4BE4466A788974" 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_8766E652DD9666EEE4A6E4466A7971EB" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_srt_LitigationCaseAxis_8766E652DD9666EEE4A6E4466A7971EB" 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_43E5098F39B4796A1CBBE4466A7981E3_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_LitigationCaseAxis_8766E652DD9666EEE4A6E4466A7971EB" xlink:to="loc_srt_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3_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_43E5098F39B4796A1CBBE4466A7981E3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_LitigationCaseAxis_8766E652DD9666EEE4A6E4466A7971EB" xlink:to="loc_srt_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AMETEKMatterMember" xlink:label="loc_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3" xlink:to="loc_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" 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_8E7B0DDB918CB8177949E4466A79A17E" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_us-gaap_LitigationStatusAxis_8E7B0DDB918CB8177949E4466A79A17E" 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_B83619FF3B5C751A730BE4466A7A3F9B_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LitigationStatusAxis_8E7B0DDB918CB8177949E4466A79A17E" xlink:to="loc_us-gaap_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B_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_B83619FF3B5C751A730BE4466A7A3F9B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LitigationStatusAxis_8E7B0DDB918CB8177949E4466A79A17E" xlink:to="loc_us-gaap_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SettledLitigationMember" xlink:label="loc_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B" xlink:to="loc_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140" 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_DDFF140D97E8278E38DDE4466A7A857B" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_DDFF140D97E8278E38DDE4466A7A857B" 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_52C65E3EFA69E2D4E41EE4466A7AB2F8_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_DDFF140D97E8278E38DDE4466A7A857B" xlink:to="loc_us-gaap_LossContingencyNatureDomain_52C65E3EFA69E2D4E41EE4466A7AB2F8_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_52C65E3EFA69E2D4E41EE4466A7AB2F8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_DDFF140D97E8278E38DDE4466A7A857B" xlink:to="loc_us-gaap_LossContingencyNatureDomain_52C65E3EFA69E2D4E41EE4466A7AB2F8" 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_72B956BD38925E7E2282E4466A7B31CD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingencyNatureDomain_52C65E3EFA69E2D4E41EE4466A7AB2F8" xlink:to="loc_us-gaap_GuaranteeObligationsMember_72B956BD38925E7E2282E4466A7B31CD" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:to="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:to="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationSettlementExpense" xlink:label="loc_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:to="loc_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269" 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_64A48E7EC4A85179B7E8E3837F5CE997" 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_0690E033FC6E9261DFF5E3837F5A7625" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_64A48E7EC4A85179B7E8E3837F5CE997" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_0690E033FC6E9261DFF5E3837F5A7625" 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_921F84A94784C218C27DE3837F5A6706" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_0690E033FC6E9261DFF5E3837F5A7625" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_921F84A94784C218C27DE3837F5A6706" 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_D4F0A7327CAC3C0268E5E3837F5BD820_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_921F84A94784C218C27DE3837F5A6706" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_D4F0A7327CAC3C0268E5E3837F5BD820_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_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_921F84A94784C218C27DE3837F5A6706" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_D4F0A7327CAC3C0268E5E3837F5BD820" 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_E9F3569A98F436B7A24FE3837F5BBF51" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_us-gaap_DistributionRightsMember_E9F3569A98F436B7A24FE3837F5BBF51" 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_246C1E43BE478099AF3CE3837F5B1DDD" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_246C1E43BE478099AF3CE3837F5B1DDD" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_2ED9A00DFFF65BC1022DE3837F5B2E30" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_2ED9A00DFFF65BC1022DE3837F5B2E30" 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_7D89A1DB8650A5673CA4E3837F5CB69F" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_7D89A1DB8650A5673CA4E3837F5CB69F" 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_0D77FF9B0307D5ED2544E3837F5CB4A9" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_0D77FF9B0307D5ED2544E3837F5CB4A9" 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_591D30ED9EAB06FFBE9DE3837F5CDA3F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_64A48E7EC4A85179B7E8E3837F5CE997" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_591D30ED9EAB06FFBE9DE3837F5CDA3F" 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_3AEE8E580AF212B11058E3837F5CD0D2" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_64A48E7EC4A85179B7E8E3837F5CE997" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_3AEE8E580AF212B11058E3837F5CD0D2" 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_DE8C61E1166D81060488E3837F5DD728" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_64A48E7EC4A85179B7E8E3837F5CE997" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_DE8C61E1166D81060488E3837F5DD728" 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/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_2EAC075E1A4A41B79926E3A3DE22D576" 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_B9EB844B9419C1C0CAF1E3A3DE227B65" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_2EAC075E1A4A41B79926E3A3DE22D576" xlink:to="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_B9EB844B9419C1C0CAF1E3A3DE227B65" 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_0939F992C8D4188C7A19E3A5662B9BC9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_B9EB844B9419C1C0CAF1E3A3DE227B65" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_0939F992C8D4188C7A19E3A5662B9BC9" 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_361C553FC8F33B20C54AE3A5662BA5A5_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_0939F992C8D4188C7A19E3A5662B9BC9" xlink:to="loc_us-gaap_TypeOfAdoptionMember_361C553FC8F33B20C54AE3A5662BA5A5_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_361C553FC8F33B20C54AE3A5662BA5A5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_0939F992C8D4188C7A19E3A5662B9BC9" xlink:to="loc_us-gaap_TypeOfAdoptionMember_361C553FC8F33B20C54AE3A5662BA5A5" 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_2B972137BC8B2641B7FAE3A58D6BBA24" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfAdoptionMember_361C553FC8F33B20C54AE3A5662BA5A5" xlink:to="loc_us-gaap_AccountingStandardsUpdate201602Member_2B972137BC8B2641B7FAE3A58D6BBA24" 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_D01DAE631C8BDE13C35AE3A51143C563" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_B9EB844B9419C1C0CAF1E3A3DE227B65" xlink:to="loc_us-gaap_StatementScenarioAxis_D01DAE631C8BDE13C35AE3A51143C563" 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_4E14FDB50F975B7279B9E3A5114347A5_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementScenarioAxis_D01DAE631C8BDE13C35AE3A51143C563" xlink:to="loc_us-gaap_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5_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_4E14FDB50F975B7279B9E3A5114347A5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementScenarioAxis_D01DAE631C8BDE13C35AE3A51143C563" xlink:to="loc_us-gaap_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScenarioPlanMember" xlink:label="loc_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5" xlink:to="loc_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5" 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_CA802F4A9B9DED468305E3A49D0AE755" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_2EAC075E1A4A41B79926E3A3DE22D576" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_CA802F4A9B9DED468305E3A49D0AE755" 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_E32D72CC0FADD3561F55E3A74B0ABC54" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_2EAC075E1A4A41B79926E3A3DE22D576" xlink:to="loc_us-gaap_OperatingLeaseLiability_E32D72CC0FADD3561F55E3A74B0ABC54" 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_204ED415D26D7B7DF5F1E3837FA94271" 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_F9212AEFAD158D5FDF49E3837FA61238" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_F9212AEFAD158D5FDF49E3837FA61238" 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_9CCDAC483C2AF7A24316E3837FA779D4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_F9212AEFAD158D5FDF49E3837FA61238" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_9CCDAC483C2AF7A24316E3837FA779D4" 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_FC19F12077FC405D9BB3E3837FA7C325_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_9CCDAC483C2AF7A24316E3837FA779D4" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325_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_FC19F12077FC405D9BB3E3837FA7C325" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_9CCDAC483C2AF7A24316E3837FA779D4" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" 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_FDDBA54BE3BF1ECC7BEFE3837FA7D13F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_LandMember_FDDBA54BE3BF1ECC7BEFE3837FA7D13F" 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_9F3EA65A8E60F34A7ECCE3837FA8B1B4" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_BuildingMember_9F3EA65A8E60F34A7ECCE3837FA8B1B4" 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_13434B21E4DC4B541D8AE3837FA8E79F" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_BuildingImprovementsMember_13434B21E4DC4B541D8AE3837FA8E79F" 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_AD346C77F1C785F35BDBE3837FA8146D" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_AD346C77F1C785F35BDBE3837FA8146D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_HardwareAndSoftwareMember" xlink:label="loc_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" 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_E8E750F1A27D104F2D0BE3837FA8AB6D" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_EquipmentMember_E8E750F1A27D104F2D0BE3837FA8AB6D" 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_B2CF10C3F966672038D2E3837FA95751" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_B2CF10C3F966672038D2E3837FA95751" 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_EF60BAD017EC706AEA6BE3837FA9C387" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_EF60BAD017EC706AEA6BE3837FA9C387" 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_BD8D0F06750CB62C6FBFE3837FA97AFA" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_BD8D0F06750CB62C6FBFE3837FA97AFA" 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_0BD6EF50F448B133BE55E3837FAF340A" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_0BD6EF50F448B133BE55E3837FAF340A" 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_BF438D1A53CEEDABD3C2E3837E38C79A" 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_D2D5F0B0B3C4E05ECF8AE3837E359BF8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_BF438D1A53CEEDABD3C2E3837E38C79A" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_D2D5F0B0B3C4E05ECF8AE3837E359BF8" 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_DBD6B3380FE3025D2B39E3837E36537A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_D2D5F0B0B3C4E05ECF8AE3837E359BF8" xlink:to="loc_srt_RestatementAxis_DBD6B3380FE3025D2B39E3837E36537A" 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_9CB0E781F2F233BD3627E3837E365539_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RestatementAxis_DBD6B3380FE3025D2B39E3837E36537A" xlink:to="loc_srt_RestatementDomain_9CB0E781F2F233BD3627E3837E365539_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_9CB0E781F2F233BD3627E3837E365539" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RestatementAxis_DBD6B3380FE3025D2B39E3837E36537A" xlink:to="loc_srt_RestatementDomain_9CB0E781F2F233BD3627E3837E365539" 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_65B3F5F8B02730D51EB8E3837E3640DC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_9CB0E781F2F233BD3627E3837E365539" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_65B3F5F8B02730D51EB8E3837E3640DC" 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_6516E9B81CB604C7CFD2E3837E36F53A" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_9CB0E781F2F233BD3627E3837E365539" xlink:to="loc_srt_RestatementAdjustmentMember_6516E9B81CB604C7CFD2E3837E36F53A" 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_9EDA1DAB7E350C3BD411E3837E372DE3" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_D2D5F0B0B3C4E05ECF8AE3837E359BF8" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9EDA1DAB7E350C3BD411E3837E372DE3" 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_E4425C27564B91B2401EE3837E37633F_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9EDA1DAB7E350C3BD411E3837E372DE3" xlink:to="loc_us-gaap_TypeOfAdoptionMember_E4425C27564B91B2401EE3837E37633F_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_E4425C27564B91B2401EE3837E37633F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9EDA1DAB7E350C3BD411E3837E372DE3" xlink:to="loc_us-gaap_TypeOfAdoptionMember_E4425C27564B91B2401EE3837E37633F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201409Member_9EC99E294EA868A33421E3837E38CE34" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfAdoptionMember_E4425C27564B91B2401EE3837E37633F" xlink:to="loc_us-gaap_AccountingStandardsUpdate201409Member_9EC99E294EA868A33421E3837E38CE34" 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_3B4DB82B52B52DDB6F3CE3837E3DEA93" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_BF438D1A53CEEDABD3C2E3837E38C79A" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_3B4DB82B52B52DDB6F3CE3837E3DEA93" 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_A7639F298485A189EC1FE3837E3EEF6F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_BF438D1A53CEEDABD3C2E3837E38C79A" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_A7639F298485A189EC1FE3837E3EEF6F" 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_B18918C1A1BB989B7E47E3837E3E46E0" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_BF438D1A53CEEDABD3C2E3837E38C79A" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_B18918C1A1BB989B7E47E3837E3E46E0" 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_FF332A187D2D717DB228E3837E3E35E9" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_BF438D1A53CEEDABD3C2E3837E38C79A" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_FF332A187D2D717DB228E3837E3E35E9" 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_2739769F525E0568074FE3837E2A7293" 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_45B16A028932B304D1BFE3837E263091" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2739769F525E0568074FE3837E2A7293" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_45B16A028932B304D1BFE3837E263091" 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_3A5E3E4785DA047A139AE3837E2755A6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_45B16A028932B304D1BFE3837E263091" xlink:to="loc_srt_StatementGeographicalAxis_3A5E3E4785DA047A139AE3837E2755A6" 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_D0DB881CFF3F275FD747E3837E2710B7_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_3A5E3E4785DA047A139AE3837E2755A6" xlink:to="loc_srt_SegmentGeographicalDomain_D0DB881CFF3F275FD747E3837E2710B7_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_D0DB881CFF3F275FD747E3837E2710B7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_3A5E3E4785DA047A139AE3837E2755A6" xlink:to="loc_srt_SegmentGeographicalDomain_D0DB881CFF3F275FD747E3837E2710B7" 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_8007103EF3E96326E1B5E3837E288D3D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_D0DB881CFF3F275FD747E3837E2710B7" xlink:to="loc_srt_AmericasMember_8007103EF3E96326E1B5E3837E288D3D" 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_34DD253CEF7EE654BB63E3837E29C0F1" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_D0DB881CFF3F275FD747E3837E2710B7" xlink:to="loc_srt_EuropeMember_34DD253CEF7EE654BB63E3837E29C0F1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_2278F49C283DD1AAB033E3837E29867A" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_D0DB881CFF3F275FD747E3837E2710B7" xlink:to="loc_cgnx_GreaterChinaMember_2278F49C283DD1AAB033E3837E29867A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OtherAsiaMember" xlink:label="loc_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_D0DB881CFF3F275FD747E3837E2710B7" xlink:to="loc_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" 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_BF0134427077EE89A708E3837E29AE81" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_45B16A028932B304D1BFE3837E263091" xlink:to="loc_srt_ProductOrServiceAxis_BF0134427077EE89A708E3837E29AE81" 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_B4F482C80A8CFC276CC7E3837E293B34_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_BF0134427077EE89A708E3837E29AE81" xlink:to="loc_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34_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_B4F482C80A8CFC276CC7E3837E293B34" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_BF0134427077EE89A708E3837E29AE81" xlink:to="loc_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_StandardProductandServicesMember" xlink:label="loc_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34" xlink:to="loc_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" 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_925A647C4D863ABC3CFDE3837E2A5CBA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2739769F525E0568074FE3837E2A7293" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_925A647C4D863ABC3CFDE3837E2A5CBA" 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_A66335693F5E3AC8E813E85BA711D701" 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_192F1A84D54199E8B1DDE85BA709B2DC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_192F1A84D54199E8B1DDE85BA709B2DC" 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_3D8BE5694467D2227902E85BA70914D5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_192F1A84D54199E8B1DDE85BA709B2DC" xlink:to="loc_srt_RestatementAxis_3D8BE5694467D2227902E85BA70914D5" 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_A356A2AC78E07B1DCA52E85BA709F367_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RestatementAxis_3D8BE5694467D2227902E85BA70914D5" xlink:to="loc_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367_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_A356A2AC78E07B1DCA52E85BA709F367" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RestatementAxis_3D8BE5694467D2227902E85BA70914D5" xlink:to="loc_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367" 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_CE3DB96587E5ECA59101E85BA709BED6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_CE3DB96587E5ECA59101E85BA709BED6" 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_E759B65B2ECFBCF0F5E7E85BA70920EA" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367" xlink:to="loc_srt_RestatementAdjustmentMember_E759B65B2ECFBCF0F5E7E85BA70920EA" 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_A96413A61096EE09576EE85BA70905D0" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_192F1A84D54199E8B1DDE85BA709B2DC" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A96413A61096EE09576EE85BA70905D0" 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_CB67C60127E3259A319FE85BA7091177_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A96413A61096EE09576EE85BA70905D0" xlink:to="loc_us-gaap_TypeOfAdoptionMember_CB67C60127E3259A319FE85BA7091177_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_CB67C60127E3259A319FE85BA7091177" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A96413A61096EE09576EE85BA70905D0" xlink:to="loc_us-gaap_TypeOfAdoptionMember_CB67C60127E3259A319FE85BA7091177" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfAdoptionMember_CB67C60127E3259A319FE85BA7091177" xlink:to="loc_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5" 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_399E34FC154CFCDC9E20E85BA71133A4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_399E34FC154CFCDC9E20E85BA71133A4" 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_5D48252883A334EA7371E85BA711DC63" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_5D48252883A334EA7371E85BA711DC63" 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_66F0BBF508847871A9BFE85BA7116F1B" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_GrossProfit_66F0BBF508847871A9BFE85BA7116F1B" 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_98EF133C46F1F35C4ECBE85BA71106AB" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_OperatingIncomeLoss_98EF133C46F1F35C4ECBE85BA71106AB" 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_469906173A5F479B5A97E85BA711A779" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_469906173A5F479B5A97E85BA711A779" 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_49F398CED6360CD7B8EFE85BA711722E" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_49F398CED6360CD7B8EFE85BA711722E" 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_DD683949B3D7F8C9F49AE85BA7118DE0" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_NetIncomeLoss_DD683949B3D7F8C9F49AE85BA7118DE0" 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_0F80988200B05E394D28E85BA711E866" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866" 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_BBB25B4B57D596B548B5E85BA713729B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866" xlink:to="loc_us-gaap_EarningsPerShareBasic_BBB25B4B57D596B548B5E85BA713729B" 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_E295D0D0C7D0B820B3D5E85BA7139585" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866" xlink:to="loc_us-gaap_EarningsPerShareDiluted_E295D0D0C7D0B820B3D5E85BA7139585" 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_A15C84144502626821EEE44668B69883" 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_E08810DBD86FC682D73FE44668B4FAFD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_A15C84144502626821EEE44668B69883" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_E08810DBD86FC682D73FE44668B4FAFD" 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_D21CBEF75B4BEEEA304BE44668B5929D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_E08810DBD86FC682D73FE44668B4FAFD" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_D21CBEF75B4BEEEA304BE44668B5929D" 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_933DE7F34622F40053EBE44668B5DAC1_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_D21CBEF75B4BEEEA304BE44668B5929D" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1_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_933DE7F34622F40053EBE44668B5DAC1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_D21CBEF75B4BEEEA304BE44668B5929D" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1" 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_26E67E7BB4F94B057B1EE44668B5062F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_26E67E7BB4F94B057B1EE44668B5062F" 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_4D6E3562B756BF50AB72E44668B56809" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_4D6E3562B756BF50AB72E44668B56809" 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_4B370D360BB35F5CCAC4E44668B6A498" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_A15C84144502626821EEE44668B69883" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" 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_13B1246EFDEDC822C9E9E44668B650C8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_13B1246EFDEDC822C9E9E44668B650C8" 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_0CF81DDBFFC1970FD433E44668B6CF4B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_0CF81DDBFFC1970FD433E44668B6CF4B" 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_5F726B7B3323EF70EE83E44668B754C7" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_5F726B7B3323EF70EE83E44668B754C7" 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_817F6ADA1D04A0CEBD0BE44668B7D7D5" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_817F6ADA1D04A0CEBD0BE44668B7D7D5" 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_B872747A2A6A576DCDE0E3837CACE94E" 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_36878E2C27596FA80A35E3837CA96CAF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_B872747A2A6A576DCDE0E3837CACE94E" xlink:to="loc_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF" 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_CFBF3D30E29EDAC21DE0E3837CAA41F6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF" xlink:to="loc_srt_StatementGeographicalAxis_CFBF3D30E29EDAC21DE0E3837CAA41F6" 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_054F595DEADE58D96D9EE3837CAAFBF4_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_CFBF3D30E29EDAC21DE0E3837CAA41F6" xlink:to="loc_srt_SegmentGeographicalDomain_054F595DEADE58D96D9EE3837CAAFBF4_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_054F595DEADE58D96D9EE3837CAAFBF4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_CFBF3D30E29EDAC21DE0E3837CAA41F6" xlink:to="loc_srt_SegmentGeographicalDomain_054F595DEADE58D96D9EE3837CAAFBF4" 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_31C02C9063E2ED505827E3837CAAEB80" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_054F595DEADE58D96D9EE3837CAAFBF4" xlink:to="loc_srt_EuropeMember_31C02C9063E2ED505827E3837CAAEB80" 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_2765C5F1D69546D38031E3837CAB2FB9" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_2765C5F1D69546D38031E3837CAB2FB9" 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_ADE52987F2386244E1EFE3837CAB1755_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_2765C5F1D69546D38031E3837CAB2FB9" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755_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_ADE52987F2386244E1EFE3837CAB1755" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_2765C5F1D69546D38031E3837CAB2FB9" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755" 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_4AAC253D6D95721849B6E3837CAB4142" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755" xlink:to="loc_us-gaap_SalesRevenueNetMember_4AAC253D6D95721849B6E3837CAB4142" 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_1AD937F4649D233F0545E3D0B928A387" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755" xlink:to="loc_us-gaap_AccountsReceivableMember_1AD937F4649D233F0545E3D0B928A387" 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_8A7F82ABCA7D2039CE15E3837CAC5599" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_8A7F82ABCA7D2039CE15E3837CAC5599" 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_17BFAFA122A6FA11D4E7E3837CAC4433_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_8A7F82ABCA7D2039CE15E3837CAC5599" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_17BFAFA122A6FA11D4E7E3837CAC4433_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_17BFAFA122A6FA11D4E7E3837CAC4433" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_8A7F82ABCA7D2039CE15E3837CAC5599" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_17BFAFA122A6FA11D4E7E3837CAC4433" 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_572697A88B46BBD776AFE3837CACD641" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_17BFAFA122A6FA11D4E7E3837CAC4433" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_572697A88B46BBD776AFE3837CACD641" 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_C5E02612384035CD6EE3E3837CADDFCB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_B872747A2A6A576DCDE0E3837CACE94E" xlink:to="loc_us-gaap_NumberOfReportableSegments_C5E02612384035CD6EE3E3837CADDFCB" 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_BA9396513FB1B57852CFE3837CADFE23" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_B872747A2A6A576DCDE0E3837CACE94E" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_BA9396513FB1B57852CFE3837CADFE23" 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_6BE120AFA90433311805E3837C9D230A" 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_CA6C87029207B9D536CAE3837C9CCBAB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_6BE120AFA90433311805E3837C9D230A" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_CA6C87029207B9D536CAE3837C9CCBAB" 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_88181160811A09214D30E3837C9C2832" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_CA6C87029207B9D536CAE3837C9CCBAB" xlink:to="loc_srt_StatementGeographicalAxis_88181160811A09214D30E3837C9C2832" 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_90DF1F751A80160E6F8CE3837C9C65AE_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_88181160811A09214D30E3837C9C2832" xlink:to="loc_srt_SegmentGeographicalDomain_90DF1F751A80160E6F8CE3837C9C65AE_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_90DF1F751A80160E6F8CE3837C9C65AE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_88181160811A09214D30E3837C9C2832" xlink:to="loc_srt_SegmentGeographicalDomain_90DF1F751A80160E6F8CE3837C9C65AE" 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_162C569630550C117710E3837C9DA5D0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_90DF1F751A80160E6F8CE3837C9C65AE" xlink:to="loc_country_US_162C569630550C117710E3837C9DA5D0" 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_C97049A0AED35624FB8EE3837C9D4991" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_90DF1F751A80160E6F8CE3837C9C65AE" xlink:to="loc_srt_EuropeMember_C97049A0AED35624FB8EE3837C9D4991" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_90DF1F751A80160E6F8CE3837C9C65AE" xlink:to="loc_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OtherGeographicAreaMember" xlink:label="loc_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_90DF1F751A80160E6F8CE3837C9C65AE" xlink:to="loc_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" 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_266569E54787556D0820E3837C9E65F1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_6BE120AFA90433311805E3837C9D230A" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_266569E54787556D0820E3837C9E65F1" 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_5BB1A55A3CC3733BD7B2E3837C9E920B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_6BE120AFA90433311805E3837C9D230A" xlink:to="loc_us-gaap_NoncurrentAssets_5BB1A55A3CC3733BD7B2E3837C9E920B" 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_BF14806C97F3D2201A62E3837E059D42" 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_9AB1C444DE0079CA4385E3837E037462" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_9AB1C444DE0079CA4385E3837E037462" 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_CB63821325FC5CA08915E3837E03FD6B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_9AB1C444DE0079CA4385E3837E037462" xlink:to="loc_us-gaap_StatementClassOfStockAxis_CB63821325FC5CA08915E3837E03FD6B" 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_0FDE6F73994E1FD663DDE3837E03E382_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementClassOfStockAxis_CB63821325FC5CA08915E3837E03FD6B" xlink:to="loc_us-gaap_ClassOfStockDomain_0FDE6F73994E1FD663DDE3837E03E382_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_0FDE6F73994E1FD663DDE3837E03E382" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementClassOfStockAxis_CB63821325FC5CA08915E3837E03FD6B" xlink:to="loc_us-gaap_ClassOfStockDomain_0FDE6F73994E1FD663DDE3837E03E382" 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_A0C3082D809EA76C28D4E3837E04D37B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_0FDE6F73994E1FD663DDE3837E03E382" xlink:to="loc_us-gaap_CommonStockMember_A0C3082D809EA76C28D4E3837E04D37B" 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_19BAD02892E246E44CE0E3837E04F5C3" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_9AB1C444DE0079CA4385E3837E037462" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_19BAD02892E246E44CE0E3837E04F5C3" 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_C5B618A9C322C3C8C2BDE3837E04B263_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_19BAD02892E246E44CE0E3837E04F5C3" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263_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_C5B618A9C322C3C8C2BDE3837E04B263" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_19BAD02892E246E44CE0E3837E04F5C3" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RepurchaseProgram2014Member" xlink:label="loc_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263" xlink:to="loc_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RepurchaseProgramTwentyFifteenMember" xlink:label="loc_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263" xlink:to="loc_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RepurchaseProgramNovember2015Member" xlink:label="loc_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263" xlink:to="loc_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" 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_F1EF17F0D0292A87F898E3837E053B0A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_F1EF17F0D0292A87F898E3837E053B0A" 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_F7E7A029480EAC8DD6B0E3837E06CAB6" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_F7E7A029480EAC8DD6B0E3837E06CAB6" 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_9C20E584C5CD8DE4F233E3837E06C0EC" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_9C20E584C5CD8DE4F233E3837E06C0EC" 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_0469A208F9937BC3737DE3837E065E22" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_0469A208F9937BC3737DE3837E065E22" 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_E7F56B17BAEB99D995A6E3837E065351" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_E7F56B17BAEB99D995A6E3837E065351" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" 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_B91C8F912FF3FE249AA5E3837E078FE3" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_B91C8F912FF3FE249AA5E3837E078FE3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Totalsharesrepurchased" xlink:label="loc_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Repurchasedsharestotalcost" xlink:label="loc_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" 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_ADCF665EFCB528EAA5BCE3837E07168B" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_ADCF665EFCB528EAA5BCE3837E07168B" 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_295827A6D54042601D82E3837E07430F" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_295827A6D54042601D82E3837E07430F" 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_CC4C8EAFAAE1B7B5ED25E3837E08DE4F" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_CommonStockDividendsPerShareDeclared_CC4C8EAFAAE1B7B5ED25E3837E08DE4F" 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_FBC2CA88330EED95B24CE3837E08765C" xlink:type="locator" />
    <link:definitionArc order="13" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_PaymentsOfDividends_FBC2CA88330EED95B24CE3837E08765C" 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_D8A2FC2FD03CB4D440E3E70868347361" 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_2F1FE1A99C15F818426EE708683189E0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2F1FE1A99C15F818426EE708683189E0" 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_3640CAC4B1D0C4D8D92DE7086832F60F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2F1FE1A99C15F818426EE708683189E0" xlink:to="loc_srt_RangeAxis_3640CAC4B1D0C4D8D92DE7086832F60F" 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_9B79993BF6478F398041E708683297F8_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_3640CAC4B1D0C4D8D92DE7086832F60F" xlink:to="loc_srt_RangeMember_9B79993BF6478F398041E708683297F8_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_9B79993BF6478F398041E708683297F8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_3640CAC4B1D0C4D8D92DE7086832F60F" xlink:to="loc_srt_RangeMember_9B79993BF6478F398041E708683297F8" 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_954E5B6F4C4630754119E708683242D7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_9B79993BF6478F398041E708683297F8" xlink:to="loc_srt_MinimumMember_954E5B6F4C4630754119E708683242D7" 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_E1F377A2CDB989A0FAB9E7086833D483" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_9B79993BF6478F398041E708683297F8" xlink:to="loc_srt_MaximumMember_E1F377A2CDB989A0FAB9E7086833D483" 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_ED346E036FC05CDB93D1E7086833A089" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2F1FE1A99C15F818426EE708683189E0" xlink:to="loc_us-gaap_AwardTypeAxis_ED346E036FC05CDB93D1E7086833A089" 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_94E06C6837AFFFFC438AE7086833ADE6_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_ED346E036FC05CDB93D1E7086833A089" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6_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_94E06C6837AFFFFC438AE7086833ADE6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_ED346E036FC05CDB93D1E7086833A089" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6" 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_2129D33F2C32C99CF8C7E70868333CD8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6" xlink:to="loc_us-gaap_EmployeeStockOptionMember_2129D33F2C32C99CF8C7E70868333CD8" 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_D00D8F80668D26DDC488E7086833CFD5" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6" xlink:to="loc_us-gaap_PerformanceSharesMember_D00D8F80668D26DDC488E7086833CFD5" 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_DBA08169676B742DA904E708683491D8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_DBA08169676B742DA904E708683491D8" 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_2B060CE5F280D07EB3FAE70868345BAC" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_2B060CE5F280D07EB3FAE70868345BAC" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:label="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" 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_749C4C255E38A265F539E7086835A3B6" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_749C4C255E38A265F539E7086835A3B6" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" 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_34452323AEA458E40FB2E7086836DC7C" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_34452323AEA458E40FB2E7086836DC7C" 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_2FFE6BE6578AB91FFA03E7086836CFC4" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2FFE6BE6578AB91FFA03E7086836CFC4" 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_595916F98EF2EFD74A25E7086836009C" xlink:type="locator" />
    <link:definitionArc order="13" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_595916F98EF2EFD74A25E7086836009C" 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_4700D1442A9987633190E708683B55CE" xlink:type="locator" />
    <link:definitionArc order="14" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_4700D1442A9987633190E708683B55CE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" xlink:type="locator" />
    <link:definitionArc order="15" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" 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_8BB6B817CD99E8EF9656E44669D8C55D" 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_FF2F4EDC4F6994B73AD9E44669D683C7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FF2F4EDC4F6994B73AD9E44669D683C7" 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_7A03D27703E90734B7A7E44669D62346" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FF2F4EDC4F6994B73AD9E44669D683C7" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_7A03D27703E90734B7A7E44669D62346" 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_AA6A3D531B838387596DE44669D70A13_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_7A03D27703E90734B7A7E44669D62346" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13_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_AA6A3D531B838387596DE44669D70A13" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_7A03D27703E90734B7A7E44669D62346" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ProductCostOfRevenueMember" xlink:label="loc_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13" xlink:to="loc_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" 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_C2A86611C35A6AF5D5A7E44669D7BD44" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_C2A86611C35A6AF5D5A7E44669D7BD44" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SellingGeneralAndAdministrativeMember" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" 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_D4FC3989E00F55C392DDE44669D8196B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_D4FC3989E00F55C392DDE44669D8196B" 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_1D9741B3EF20E078DA5EE44669D827F0" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_1D9741B3EF20E078DA5EE44669D827F0" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B293DCE7639A25EF695FE44669D8A7EF" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B293DCE7639A25EF695FE44669D8A7EF" 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_7EFF3FFB9B58AC4EEA27E46A232A9661" 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_4A8620E94316D2C08B02E46A2329A939" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_4A8620E94316D2C08B02E46A2329A939" 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_7C1ED22E55197BDD57BAE46A23295E50" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_4A8620E94316D2C08B02E46A2329A939" xlink:to="loc_us-gaap_AwardTypeAxis_7C1ED22E55197BDD57BAE46A23295E50" 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_4F61D046B0C44DDBF3BCE46A232A2EF9_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_7C1ED22E55197BDD57BAE46A23295E50" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_4F61D046B0C44DDBF3BCE46A232A2EF9_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_4F61D046B0C44DDBF3BCE46A232A2EF9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_7C1ED22E55197BDD57BAE46A23295E50" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_4F61D046B0C44DDBF3BCE46A232A2EF9" 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_E8A51B62E597D46EA664E46A232A6B77" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_4F61D046B0C44DDBF3BCE46A232A2EF9" xlink:to="loc_us-gaap_RestrictedStockMember_E8A51B62E597D46EA664E46A232A6B77" 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_1C0A4AF5A1C5002E2CDBE46A232A31E0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0" 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_4F1AC41341A9C1D7C681E46A232B0811" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4F1AC41341A9C1D7C681E46A232B0811" 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_80E1B7780883A65FE83AE46A232B3F4E" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_80E1B7780883A65FE83AE46A232B3F4E" 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_997E353E0C761FEB748DE46A232B1CD4" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_997E353E0C761FEB748DE46A232B1CD4" 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_E6049EE20237D12EA327E46B9C4085AE" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_E6049EE20237D12EA327E46B9C4085AE" 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_A17E5D4096970A9B4D3AE46A232B0356" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356" 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_407C8279D6A5A5E1C1C9E46A232C84A3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_407C8279D6A5A5E1C1C9E46A232C84A3" 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_AB0FF40987677460C274E46A232C9FF1" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_AB0FF40987677460C274E46A232C9FF1" 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_95C7789591F73B0C4CDAE46A232D6D6B" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_95C7789591F73B0C4CDAE46A232D6D6B" 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_86FF7905A4F1BC694398E46A232D2F06" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_86FF7905A4F1BC694398E46A232D2F06" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_CE9F13758F5A93933BC9E46A232EE9B5" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_CE9F13758F5A93933BC9E46A232EE9B5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_A530037ACA2E5EBD225FE46A232ECE04" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_A530037ACA2E5EBD225FE46A232ECE04" 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_58B13C050F05B7D61513FA5C20D6F170" 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_383A78DAAA1F26CD6A54FA5C20D40697" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_58B13C050F05B7D61513FA5C20D6F170" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_383A78DAAA1F26CD6A54FA5C20D40697" 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_0313D3B1795AC280FFC0FA5C20D5A49C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_383A78DAAA1F26CD6A54FA5C20D40697" xlink:to="loc_us-gaap_AwardTypeAxis_0313D3B1795AC280FFC0FA5C20D5A49C" 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_8677F132099E2E72F645FA5C20D527E7_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_0313D3B1795AC280FFC0FA5C20D5A49C" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_8677F132099E2E72F645FA5C20D527E7_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_8677F132099E2E72F645FA5C20D527E7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_0313D3B1795AC280FFC0FA5C20D5A49C" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_8677F132099E2E72F645FA5C20D527E7" 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_86FA81C214BC85D8C31DFA5C20D5C742" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_8677F132099E2E72F645FA5C20D527E7" xlink:to="loc_us-gaap_EmployeeStockOptionMember_86FA81C214BC85D8C31DFA5C20D5C742" 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_5DD356CAB88CAD74AD54FA5C20D6587C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_58B13C050F05B7D61513FA5C20D6F170" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_5DD356CAB88CAD74AD54FA5C20D6587C" 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_4AA278AA420C32154294FA5C20D63777" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_58B13C050F05B7D61513FA5C20D6F170" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_4AA278AA420C32154294FA5C20D63777" 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_5110BD5E31D5430F0345FA5C20D62A4B" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_58B13C050F05B7D61513FA5C20D6F170" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5110BD5E31D5430F0345FA5C20D62A4B" 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_BBA4ACA5D2290E936656FA5C20D7254F" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_58B13C050F05B7D61513FA5C20D6F170" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_BBA4ACA5D2290E936656FA5C20D7254F" 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_161155272B109F3D9C42E3837B3C450B" 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_49DE898B0F9663F0BF3CE3837B3B7F4D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B" xlink:to="loc_us-gaap_SubsequentEventTable_49DE898B0F9663F0BF3CE3837B3B7F4D" 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_EF8EFDC96784CA3CE898E3837B3BB70F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_49DE898B0F9663F0BF3CE3837B3B7F4D" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_EF8EFDC96784CA3CE898E3837B3BB70F" 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_C0B187A76024540E4671E3837B3C74D2_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_EF8EFDC96784CA3CE898E3837B3BB70F" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_C0B187A76024540E4671E3837B3C74D2_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_C0B187A76024540E4671E3837B3C74D2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_EF8EFDC96784CA3CE898E3837B3BB70F" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_C0B187A76024540E4671E3837B3C74D2" 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_08D887031C7E68C74742E3837B3C314B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_C0B187A76024540E4671E3837B3C74D2" xlink:to="loc_us-gaap_SubsequentEventMember_08D887031C7E68C74742E3837B3C314B" 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_16C5D9ED8F2DDCB6B132E3837B3DB400" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_16C5D9ED8F2DDCB6B132E3837B3DB400" 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_AC782C6F0FD497701A84E3837B3D4175" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_AC782C6F0FD497701A84E3837B3D4175" 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_E9FBA4AD101977401272E3837B3D6EF5" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_E9FBA4AD101977401272E3837B3D6EF5" 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_37E2EDEA47A6311AB3BAE38380C659EA" 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_25095B46238AF4B651A2E38380C3075B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_37E2EDEA47A6311AB3BAE38380C659EA" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_25095B46238AF4B651A2E38380C3075B" 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_21869EEF0CD98462A1ABE38380C3F5CF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_25095B46238AF4B651A2E38380C3075B" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_21869EEF0CD98462A1ABE38380C3F5CF" 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_C9E5ACE899410EF13F82E38380C48A21_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_21869EEF0CD98462A1ABE38380C3F5CF" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_C9E5ACE899410EF13F82E38380C48A21_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_C9E5ACE899410EF13F82E38380C48A21" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_21869EEF0CD98462A1ABE38380C3F5CF" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_C9E5ACE899410EF13F82E38380C48A21" 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_135BF75EE67E91FDEF5FE38380C4AAE8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_us-gaap_BuildingMember_135BF75EE67E91FDEF5FE38380C4AAE8" 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_2A62B4A057FB7F172DE0E38380C4CFFA" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_us-gaap_BuildingImprovementsMember_2A62B4A057FB7F172DE0E38380C4CFFA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ComputerHardwareAndSoftwareMember" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" 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_FDCC5F33C75C9B318068E38380C50138" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_us-gaap_EquipmentMember_FDCC5F33C75C9B318068E38380C50138" 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_2B5A05A51F80CB026004E38380C59509" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_2B5A05A51F80CB026004E38380C59509" 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_D56A001F154CEF817244E38380C55417" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_25095B46238AF4B651A2E38380C3075B" xlink:to="loc_srt_RangeAxis_D56A001F154CEF817244E38380C55417" 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_E15E10452088E960C9E7E38380C581B6_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_D56A001F154CEF817244E38380C55417" xlink:to="loc_srt_RangeMember_E15E10452088E960C9E7E38380C581B6_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_E15E10452088E960C9E7E38380C581B6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_D56A001F154CEF817244E38380C55417" xlink:to="loc_srt_RangeMember_E15E10452088E960C9E7E38380C581B6" 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_71E48602A13FBE8F5C37E38380C5F46A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_E15E10452088E960C9E7E38380C581B6" xlink:to="loc_srt_MinimumMember_71E48602A13FBE8F5C37E38380C5F46A" 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_689621FA8CF183DA1E57E38380C6DB50" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_E15E10452088E960C9E7E38380C581B6" xlink:to="loc_srt_MaximumMember_689621FA8CF183DA1E57E38380C6DB50" 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_9C605EA54327CA8D96DAE38380C6BC5E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_37E2EDEA47A6311AB3BAE38380C659EA" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_9C605EA54327CA8D96DAE38380C6BC5E" 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_57EE372DA40A74CBD22EE38380A862F2" 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_542EF05B295A6430578EE38380A50FA6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_542EF05B295A6430578EE38380A50FA6" 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_909D9F39EEA64C67B945E38380A727D4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_542EF05B295A6430578EE38380A50FA6" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_909D9F39EEA64C67B945E38380A727D4" 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_AC79417DEE10EB326B99E38380A78A4F_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_909D9F39EEA64C67B945E38380A727D4" xlink:to="loc_us-gaap_EquityComponentDomain_AC79417DEE10EB326B99E38380A78A4F_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_AC79417DEE10EB326B99E38380A78A4F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_909D9F39EEA64C67B945E38380A727D4" xlink:to="loc_us-gaap_EquityComponentDomain_AC79417DEE10EB326B99E38380A78A4F" 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_6D197FFD717317FA1F0EE38380A883EF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_AC79417DEE10EB326B99E38380A78A4F" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_6D197FFD717317FA1F0EE38380A883EF" 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_6556C5AA9680B3551B5CE38380A8C9CB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_6556C5AA9680B3551B5CE38380A8C9CB" 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_E1EFF3E9FA11CC03A4CBE38380A8E57D" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_E1EFF3E9FA11CC03A4CBE38380A8E57D" 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_A35382E43763295F7901E38380A9FE5D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_A35382E43763295F7901E38380A9FE5D" 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_E66EDE465680433E0E0AE38380A974AA" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_E66EDE465680433E0E0AE38380A974AA" 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_6D92D25F767B697487BDE38380B958E4" 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_3903FADCA09840C32227E38380B79EC6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6D92D25F767B697487BDE38380B958E4" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3903FADCA09840C32227E38380B79EC6" 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_E793D9BA17C9D6702553E38380B7D394" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3903FADCA09840C32227E38380B79EC6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_E793D9BA17C9D6702553E38380B7D394" 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_491286FEF306B1D2B200E38380B7708B_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_E793D9BA17C9D6702553E38380B7D394" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_491286FEF306B1D2B200E38380B7708B_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_491286FEF306B1D2B200E38380B7708B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_E793D9BA17C9D6702553E38380B7D394" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_491286FEF306B1D2B200E38380B7708B" 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_686F9BD224DD7989C89DE38380B8A8A1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_491286FEF306B1D2B200E38380B7708B" xlink:to="loc_us-gaap_DistributionRightsMember_686F9BD224DD7989C89DE38380B8A8A1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_491286FEF306B1D2B200E38380B7708B" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_491286FEF306B1D2B200E38380B7708B" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" 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_69F3ABF45ED0B91CE003E38380B8A708" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_491286FEF306B1D2B200E38380B7708B" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_69F3ABF45ED0B91CE003E38380B8A708" 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_A9C4F6A0906443B487CBE38380B9DADF" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3903FADCA09840C32227E38380B79EC6" xlink:to="loc_srt_RangeAxis_A9C4F6A0906443B487CBE38380B9DADF" 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_6104E5C9AB48FBB81E1AE38380B94FB2_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_A9C4F6A0906443B487CBE38380B9DADF" xlink:to="loc_srt_RangeMember_6104E5C9AB48FBB81E1AE38380B94FB2_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_6104E5C9AB48FBB81E1AE38380B94FB2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_A9C4F6A0906443B487CBE38380B9DADF" xlink:to="loc_srt_RangeMember_6104E5C9AB48FBB81E1AE38380B94FB2" 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_EEA873743FCC4B1C73C4E38380B9E387" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_6104E5C9AB48FBB81E1AE38380B94FB2" xlink:to="loc_srt_MinimumMember_EEA873743FCC4B1C73C4E38380B9E387" 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_DA0745FDB0E954406140E38380B94943" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_6104E5C9AB48FBB81E1AE38380B94FB2" xlink:to="loc_srt_MaximumMember_DA0745FDB0E954406140E38380B94943" 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_A1CBF306016A877921C8E38380BA3AD3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6D92D25F767B697487BDE38380B958E4" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_A1CBF306016A877921C8E38380BA3AD3" 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_5362DA372C41531E4FCCE39D1D842B00" 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_711D5C27D3BBF7C0AD1FE39D1D83BF42" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_5362DA372C41531E4FCCE39D1D842B00" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_711D5C27D3BBF7C0AD1FE39D1D83BF42" 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_6BBBDA8BD44B0B3E6C24E39D4409A2D5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_711D5C27D3BBF7C0AD1FE39D1D83BF42" xlink:to="loc_srt_RangeAxis_6BBBDA8BD44B0B3E6C24E39D4409A2D5" 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_1BA6C20F137E64C63A2CE39D4412E43F_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_6BBBDA8BD44B0B3E6C24E39D4409A2D5" xlink:to="loc_srt_RangeMember_1BA6C20F137E64C63A2CE39D4412E43F_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_1BA6C20F137E64C63A2CE39D4412E43F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_6BBBDA8BD44B0B3E6C24E39D4409A2D5" xlink:to="loc_srt_RangeMember_1BA6C20F137E64C63A2CE39D4412E43F" 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_47987E55719BDE1AE351E39DF55085ED" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_1BA6C20F137E64C63A2CE39D4412E43F" xlink:to="loc_srt_MinimumMember_47987E55719BDE1AE351E39DF55085ED" 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_F59D823F6B7D70D86190E39E1D4BCA49" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_1BA6C20F137E64C63A2CE39D4412E43F" xlink:to="loc_srt_MaximumMember_F59D823F6B7D70D86190E39E1D4BCA49" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RevenuePaymentTerms" xlink:label="loc_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_5362DA372C41531E4FCCE39D1D842B00" xlink:to="loc_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" 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_4711C0B12A5BA4010226FA5C20DFB5BC" 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_9B95866CD96AD3C552A6FA5C20DE1D97" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_4711C0B12A5BA4010226FA5C20DFB5BC" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_9B95866CD96AD3C552A6FA5C20DE1D97" 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_16B2C92C9FC5B8F2075DFA5C20DE6840" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_9B95866CD96AD3C552A6FA5C20DE1D97" xlink:to="loc_srt_RangeAxis_16B2C92C9FC5B8F2075DFA5C20DE6840" 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_B5D9765D081AF0CF5B24FA5C20DE041E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_16B2C92C9FC5B8F2075DFA5C20DE6840" xlink:to="loc_srt_RangeMember_B5D9765D081AF0CF5B24FA5C20DE041E_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_B5D9765D081AF0CF5B24FA5C20DE041E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_16B2C92C9FC5B8F2075DFA5C20DE6840" xlink:to="loc_srt_RangeMember_B5D9765D081AF0CF5B24FA5C20DE041E" 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_0D9286625191C5DE89DBFA5C20DF4479" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_B5D9765D081AF0CF5B24FA5C20DE041E" xlink:to="loc_srt_MinimumMember_0D9286625191C5DE89DBFA5C20DF4479" 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_E7148FA4A67A6D84B34CFA5C20DFA3D4" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_B5D9765D081AF0CF5B24FA5C20DE041E" xlink:to="loc_srt_MaximumMember_E7148FA4A67A6D84B34CFA5C20DFA3D4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ProductWarrantyPeriod" xlink:label="loc_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_4711C0B12A5BA4010226FA5C20DFB5BC" xlink:to="loc_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" 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_84FBB5C9B417446DB26BE3837D46EE69" 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_4F8CD2AB35B1476252BAE3837D41FE51" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_4F8CD2AB35B1476252BAE3837D41FE51" 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_03A860AC94408F8C8615E3837D41B845" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_03A860AC94408F8C8615E3837D41B845" 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_51D1CF2B1F573C6DFE60E3837D415C23_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_03A860AC94408F8C8615E3837D41B845" xlink:to="loc_us-gaap_TypeOfAdoptionMember_51D1CF2B1F573C6DFE60E3837D415C23_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_51D1CF2B1F573C6DFE60E3837D415C23" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_03A860AC94408F8C8615E3837D41B845" xlink:to="loc_us-gaap_TypeOfAdoptionMember_51D1CF2B1F573C6DFE60E3837D415C23" 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_31D9F4AE21AF00D27D92E3837D42680C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfAdoptionMember_51D1CF2B1F573C6DFE60E3837D415C23" xlink:to="loc_us-gaap_AccountingStandardsUpdate201616Member_31D9F4AE21AF00D27D92E3837D42680C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" xlink:label="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfAdoptionMember_51D1CF2B1F573C6DFE60E3837D415C23" xlink:to="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" 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_B4A123E51D72B56B42C8E3837D42B5CD" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_srt_StatementGeographicalAxis_B4A123E51D72B56B42C8E3837D42B5CD" 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_FCB986181CE8957265F8E3837D435BFC_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_B4A123E51D72B56B42C8E3837D42B5CD" xlink:to="loc_srt_SegmentGeographicalDomain_FCB986181CE8957265F8E3837D435BFC_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_FCB986181CE8957265F8E3837D435BFC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_B4A123E51D72B56B42C8E3837D42B5CD" xlink:to="loc_srt_SegmentGeographicalDomain_FCB986181CE8957265F8E3837D435BFC" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OtherThantheU.SMember" xlink:label="loc_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_FCB986181CE8957265F8E3837D435BFC" xlink:to="loc_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_BCD8D5F99AA25304A292E3837D444118" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_BCD8D5F99AA25304A292E3837D444118" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_58C27D2A191CACF75609E3837D440CBE_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_BCD8D5F99AA25304A292E3837D444118" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_58C27D2A191CACF75609E3837D440CBE_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_58C27D2A191CACF75609E3837D440CBE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_BCD8D5F99AA25304A292E3837D444118" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_58C27D2A191CACF75609E3837D440CBE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SisdMember" xlink:label="loc_cgnx_SisdMember_51F06FC455F9E38C70DDE3837D456139" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_58C27D2A191CACF75609E3837D440CBE" xlink:to="loc_cgnx_SisdMember_51F06FC455F9E38C70DDE3837D456139" 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_3C3DDF671A990A95675AE3837D45930A" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_3C3DDF671A990A95675AE3837D45930A" 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_05DB38C252FB11B078A2E3837D458AE2_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_3C3DDF671A990A95675AE3837D45930A" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_05DB38C252FB11B078A2E3837D458AE2_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_05DB38C252FB11B078A2E3837D458AE2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_3C3DDF671A990A95675AE3837D45930A" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_05DB38C252FB11B078A2E3837D458AE2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_B00E3835EB7FA1AA6C43E3837D45E596" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisposalGroupClassificationDomain_05DB38C252FB11B078A2E3837D458AE2" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_B00E3835EB7FA1AA6C43E3837D45E596" 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_F2B37EA5FBB536518E89E3837D466FA3" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_F2B37EA5FBB536518E89E3837D466FA3" 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_B385BCA4674BB670BB55E3837D465FEF_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_F2B37EA5FBB536518E89E3837D466FA3" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF_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_B385BCA4674BB670BB55E3837D465FEF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_F2B37EA5FBB536518E89E3837D466FA3" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF" 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_9F1D9F6A5E04011855B6E3837D467651" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF" xlink:to="loc_us-gaap_ResearchMember_9F1D9F6A5E04011855B6E3837D467651" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_StateResearchAndExperimentationMember" xlink:label="loc_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF" xlink:to="loc_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" 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_7DFF1865201467EB7D68E3837D47C096" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7DFF1865201467EB7D68E3837D47C096" 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_D0FDAC58CB657DB7019AE3837D4794D7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_D0FDAC58CB657DB7019AE3837D4794D7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43" 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_B91A5AA15431E2285AC8E3837D480B94" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B91A5AA15431E2285AC8E3837D480B94" 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_3F4C3B513234D853A128E3837D4850F7" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_Cash_3F4C3B513234D853A128E3837D4850F7" 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_93595AD2DD8EFCB0290EE3837D486F85" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_93595AD2DD8EFCB0290EE3837D486F85" 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_7AE7E32720860EB24BD4E3837D484582" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_7AE7E32720860EB24BD4E3837D484582" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsStateTaxes" xlink:label="loc_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C" 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_0DCED24A46C4EB60E77DE3837D495BC5" xlink:type="locator" />
    <link:definitionArc order="13" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_0DCED24A46C4EB60E77DE3837D495BC5" 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_D9AC14F32FA3FF2945E4E3837D494A63" xlink:type="locator" />
    <link:definitionArc order="14" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_D9AC14F32FA3FF2945E4E3837D494A63" 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_251BCDAA6FA72F6D6CBAE3837D499142" xlink:type="locator" />
    <link:definitionArc order="15" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_251BCDAA6FA72F6D6CBAE3837D499142" 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_5C8A2569DD5C240794F4E3837D496C23" xlink:type="locator" />
    <link:definitionArc order="16" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_5C8A2569DD5C240794F4E3837D496C23" 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_39991622501B98769EF3E3837D490EF5" xlink:type="locator" />
    <link:definitionArc order="17" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_39991622501B98769EF3E3837D490EF5" 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_3336071640301B42D5F7E3837D49D289" xlink:type="locator" />
    <link:definitionArc order="18" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3336071640301B42D5F7E3837D49D289" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" xlink:type="locator" />
    <link:definitionArc order="19" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" 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_CDC114FAF4952D1D65FCE3837D4A3FC1" xlink:type="locator" />
    <link:definitionArc order="20" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_CDC114FAF4952D1D65FCE3837D4A3FC1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" xlink:type="locator" />
    <link:definitionArc order="21" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" xlink:type="locator" />
    <link:definitionArc order="22" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" 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_3885215941B4C8E07DE1E3837D4F5F80" xlink:type="locator" />
    <link:definitionArc order="23" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_3885215941B4C8E07DE1E3837D4F5F80" 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_159ACF539CDCDEA4360EE3837D506D94" xlink:type="locator" />
    <link:definitionArc order="24" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_159ACF539CDCDEA4360EE3837D506D94" 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_81DE094D5E88B79EA18AE3837D505F1F" xlink:type="locator" />
    <link:definitionArc order="25" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_81DE094D5E88B79EA18AE3837D505F1F" 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_398B2463F471EB637335E3837D50DE47" xlink:type="locator" />
    <link:definitionArc order="26" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_398B2463F471EB637335E3837D50DE47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation" xlink:label="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_17793BDEC670EBC010A0E3837D502BE8" xlink:type="locator" />
    <link:definitionArc order="27" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_17793BDEC670EBC010A0E3837D502BE8" 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_D7DC92A7783E5A8CA107E3837D50EDC4" xlink:type="locator" />
    <link:definitionArc order="28" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_D7DC92A7783E5A8CA107E3837D50EDC4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OpenTaxYearStateAuthorities" xlink:label="loc_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" xlink:type="locator" />
    <link:definitionArc order="29" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OpentaxyearUnitedStatesInternalRevenueService" xlink:label="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" xlink:type="locator" />
    <link:definitionArc order="30" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Opentaxyearvarioustaxingauthorities" xlink:label="loc_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" xlink:type="locator" />
    <link:definitionArc order="31" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement" xlink:label="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" xlink:type="locator" />
    <link:definitionArc order="32" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxyearsforAPAagreement" xlink:label="loc_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" xlink:type="locator" />
    <link:definitionArc order="33" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Stateresearchandexperimentationtaxcarryforwards" xlink:label="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" xlink:type="locator" />
    <link:definitionArc order="34" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" 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_708AEAFD7797DA9746EFE3837D525908" xlink:type="locator" />
    <link:definitionArc order="35" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_708AEAFD7797DA9746EFE3837D525908" 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_35A917FD66B3A6A7D6DBE3837CF3218B" 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_02261D7D9A35E0F814F5E3837CEDE295" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_35A917FD66B3A6A7D6DBE3837CF3218B" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_02261D7D9A35E0F814F5E3837CEDE295" 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_EB31FDD07E9D1D08025FE3837CF27F94" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_02261D7D9A35E0F814F5E3837CEDE295" xlink:to="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_EB31FDD07E9D1D08025FE3837CF27F94" 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_88D42660CD00E111BC91E3837CF293F1_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_EB31FDD07E9D1D08025FE3837CF27F94" xlink:to="loc_us-gaap_DeferredTaxAssetDomain_88D42660CD00E111BC91E3837CF293F1_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_88D42660CD00E111BC91E3837CF293F1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_EB31FDD07E9D1D08025FE3837CF27F94" xlink:to="loc_us-gaap_DeferredTaxAssetDomain_88D42660CD00E111BC91E3837CF293F1" 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_11A6A906B8A184471E39E3837CF21BEC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DeferredTaxAssetDomain_88D42660CD00E111BC91E3837CF293F1" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_11A6A906B8A184471E39E3837CF21BEC" 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_E26C651D3DFF3D2B806CE3837CF36BA7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_35A917FD66B3A6A7D6DBE3837CF3218B" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_E26C651D3DFF3D2B806CE3837CF36BA7" 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/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: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>12
<FILENAME>cgnx-20181231_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_RevenueFromContractWithCustomerAbstract_C924032F4E78CDFA4C0A9647C21014B2_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract_C924032F4E78CDFA4C0A9647C21014B2" 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_C924032F4E78CDFA4C0A9647C21014B2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_C924032F4E78CDFA4C0A9647C21014B2" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerAbstract_C924032F4E78CDFA4C0A9647C21014B2" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_02BE8D2F3AC29F72D7ED9647C2100F1B_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_02BE8D2F3AC29F72D7ED9647C2100F1B" 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_02BE8D2F3AC29F72D7ED9647C2100F1B_label_en-US" xlink:label="lab_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_02BE8D2F3AC29F72D7ED9647C2100F1B" 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_02BE8D2F3AC29F72D7ED9647C2100F1B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_02BE8D2F3AC29F72D7ED9647C2100F1B" xlink:to="lab_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_02BE8D2F3AC29F72D7ED9647C2100F1B" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_D0EF576B747FDBB01CBF9647C2101CDB_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_D0EF576B747FDBB01CBF9647C2101CDB" 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_D0EF576B747FDBB01CBF9647C2101CDB_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_D0EF576B747FDBB01CBF9647C2101CDB" 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_D0EF576B747FDBB01CBF9647C2101CDB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_D0EF576B747FDBB01CBF9647C2101CDB" xlink:to="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_D0EF576B747FDBB01CBF9647C2101CDB" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_C17032240A10DC6613DC96490096BC26_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_C17032240A10DC6613DC96490096BC26" 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_C17032240A10DC6613DC96490096BC26_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_C17032240A10DC6613DC96490096BC26" 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_C17032240A10DC6613DC96490096BC26" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_C17032240A10DC6613DC96490096BC26" xlink:to="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_C17032240A10DC6613DC96490096BC26" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementAbstract_AA8509517349F87D803DE35136F91361_label_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract_AA8509517349F87D803DE35136F91361" 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_AA8509517349F87D803DE35136F91361" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementAbstract_AA8509517349F87D803DE35136F91361" xlink:to="lab_us-gaap_IncomeStatementAbstract_AA8509517349F87D803DE35136F91361" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_61885FDCE9A2AC2000B5E35136F94C6D_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_61885FDCE9A2AC2000B5E35136F94C6D" 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_61885FDCE9A2AC2000B5E35136F94C6D_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_61885FDCE9A2AC2000B5E35136F94C6D" 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_61885FDCE9A2AC2000B5E35136F94C6D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_61885FDCE9A2AC2000B5E35136F94C6D" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_61885FDCE9A2AC2000B5E35136F94C6D" xlink:type="arc" />
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_9BA0DF42E698C5C10A17E35136FA8282_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold_9BA0DF42E698C5C10A17E35136FA8282" 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_9BA0DF42E698C5C10A17E35136FA8282_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold_9BA0DF42E698C5C10A17E35136FA8282" 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_9BA0DF42E698C5C10A17E35136FA8282" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsAndServicesSold_9BA0DF42E698C5C10A17E35136FA8282" xlink:to="lab_us-gaap_CostOfGoodsAndServicesSold_9BA0DF42E698C5C10A17E35136FA8282" xlink:type="arc" />
    <link:label id="lab_us-gaap_GrossProfit_65494ADD712D99733A63E35136FAF4E1_totalLabel_en-US" xlink:label="lab_us-gaap_GrossProfit_65494ADD712D99733A63E35136FAF4E1" 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_65494ADD712D99733A63E35136FAF4E1_label_en-US" xlink:label="lab_us-gaap_GrossProfit_65494ADD712D99733A63E35136FAF4E1" 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_65494ADD712D99733A63E35136FAF4E1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GrossProfit_65494ADD712D99733A63E35136FAF4E1" xlink:to="lab_us-gaap_GrossProfit_65494ADD712D99733A63E35136FAF4E1" xlink:type="arc" />
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_8CF2BDC8E43E0CD03DF7E35136FA373E_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense_8CF2BDC8E43E0CD03DF7E35136FA373E" 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_8CF2BDC8E43E0CD03DF7E35136FA373E_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense_8CF2BDC8E43E0CD03DF7E35136FA373E" 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_8CF2BDC8E43E0CD03DF7E35136FA373E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense_8CF2BDC8E43E0CD03DF7E35136FA373E" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpense_8CF2BDC8E43E0CD03DF7E35136FA373E" xlink:type="arc" />
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_DD0A12FD1DF6CA1835D8E35136FAC314_terseLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense_DD0A12FD1DF6CA1835D8E35136FAC314" 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_DD0A12FD1DF6CA1835D8E35136FAC314_label_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense_DD0A12FD1DF6CA1835D8E35136FAC314" 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_DD0A12FD1DF6CA1835D8E35136FAC314" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense_DD0A12FD1DF6CA1835D8E35136FAC314" xlink:to="lab_us-gaap_SellingGeneralAndAdministrativeExpense_DD0A12FD1DF6CA1835D8E35136FAC314" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingIncomeLoss_14970880CB0EAD27BC45E35136FA38FD_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss_14970880CB0EAD27BC45E35136FA38FD" 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_14970880CB0EAD27BC45E35136FA38FD_label_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss_14970880CB0EAD27BC45E35136FA38FD" 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_14970880CB0EAD27BC45E35136FA38FD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingIncomeLoss_14970880CB0EAD27BC45E35136FA38FD" xlink:to="lab_us-gaap_OperatingIncomeLoss_14970880CB0EAD27BC45E35136FA38FD" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_59F27ED932B5E5CC1F1DE35136FA7B3D_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_59F27ED932B5E5CC1F1DE35136FA7B3D" 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_59F27ED932B5E5CC1F1DE35136FA7B3D_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_59F27ED932B5E5CC1F1DE35136FA7B3D" 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_59F27ED932B5E5CC1F1DE35136FA7B3D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_59F27ED932B5E5CC1F1DE35136FA7B3D" xlink:to="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_59F27ED932B5E5CC1F1DE35136FA7B3D" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentIncomeNonoperating_73588D8090A88451DD27E35136FB9C80_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentIncomeNonoperating_73588D8090A88451DD27E35136FB9C80" 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_73588D8090A88451DD27E35136FB9C80_label_en-US" xlink:label="lab_us-gaap_InvestmentIncomeNonoperating_73588D8090A88451DD27E35136FB9C80" 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_73588D8090A88451DD27E35136FB9C80" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentIncomeNonoperating_73588D8090A88451DD27E35136FB9C80" xlink:to="lab_us-gaap_InvestmentIncomeNonoperating_73588D8090A88451DD27E35136FB9C80" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_63C859C6E5619E35989BE35136FBB5E1_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense_63C859C6E5619E35989BE35136FBB5E1" 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_63C859C6E5619E35989BE35136FBB5E1_label_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense_63C859C6E5619E35989BE35136FBB5E1" 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_63C859C6E5619E35989BE35136FBB5E1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherNonoperatingIncomeExpense_63C859C6E5619E35989BE35136FBB5E1" xlink:to="lab_us-gaap_OtherNonoperatingIncomeExpense_63C859C6E5619E35989BE35136FBB5E1" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_C3C3667E658C985A25F4E35136FBEE62_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_C3C3667E658C985A25F4E35136FBEE62" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income from continuing operations before income tax expense</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_C3C3667E658C985A25F4E35136FBEE62_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_C3C3667E658C985A25F4E35136FBEE62" 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_C3C3667E658C985A25F4E35136FBEE62" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_C3C3667E658C985A25F4E35136FBEE62" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_C3C3667E658C985A25F4E35136FBEE62" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_75AA31BDA4B4B580194BE35136FB4F98_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit_75AA31BDA4B4B580194BE35136FB4F98" 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_75AA31BDA4B4B580194BE35136FB4F98_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit_75AA31BDA4B4B580194BE35136FB4F98" 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_75AA31BDA4B4B580194BE35136FB4F98" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_75AA31BDA4B4B580194BE35136FB4F98" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit_75AA31BDA4B4B580194BE35136FB4F98" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperations_BC2FFE1349562B813767E35136FBBB1C_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperations_BC2FFE1349562B813767E35136FBBB1C" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income from continuing operations</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperations_BC2FFE1349562B813767E35136FBBB1C_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperations_BC2FFE1349562B813767E35136FBBB1C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations, 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_IncomeLossFromContinuingOperations" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperations_BC2FFE1349562B813767E35136FBBB1C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperations_BC2FFE1349562B813767E35136FBBB1C" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperations_BC2FFE1349562B813767E35136FBBB1C" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_CF02589988DA60F75804E35136FCAFB3_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_CF02589988DA60F75804E35136FCAFB3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (loss) from discontinued operations (Note 20)</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_CF02589988DA60F75804E35136FCAFB3_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_CF02589988DA60F75804E35136FCAFB3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Discontinued Operations, 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_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_CF02589988DA60F75804E35136FCAFB3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_CF02589988DA60F75804E35136FCAFB3" xlink:to="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_CF02589988DA60F75804E35136FCAFB3" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetIncomeLoss_999DDD56A3E1D791AAF5E35136FCBDB6_totalLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss_999DDD56A3E1D791AAF5E35136FCBDB6" 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_999DDD56A3E1D791AAF5E35136FCBDB6_label_en-US" xlink:label="lab_us-gaap_NetIncomeLoss_999DDD56A3E1D791AAF5E35136FCBDB6" 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_999DDD56A3E1D791AAF5E35136FCBDB6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss_999DDD56A3E1D791AAF5E35136FCBDB6" xlink:to="lab_us-gaap_NetIncomeLoss_999DDD56A3E1D791AAF5E35136FCBDB6" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basic earnings per weighted-average common and common-equivalent share (1):</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0" 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_A661306E86E7681E040BE35136FC32C0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0" xlink:to="lab_us-gaap_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_F153726180E831165FDAE35136FCBE9A_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_F153726180E831165FDAE35136FCBE9A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income from continuing operations (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_F153726180E831165FDAE35136FCBE9A_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_F153726180E831165FDAE35136FCBE9A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations, Per Basic Share</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsPerBasicShare" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_F153726180E831165FDAE35136FCBE9A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_F153726180E831165FDAE35136FCBE9A" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_F153726180E831165FDAE35136FCBE9A" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_BC73A2B21F4CFC1C1762E35136FC907F_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_BC73A2B21F4CFC1C1762E35136FC907F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (loss) from discontinued operations (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_BC73A2B21F4CFC1C1762E35136FC907F_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_BC73A2B21F4CFC1C1762E35136FC907F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Discontinued Operations and Disposal of Discontinued Operations, Net of Tax, Per Basic Share</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_BC73A2B21F4CFC1C1762E35136FC907F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_BC73A2B21F4CFC1C1762E35136FC907F" xlink:to="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_BC73A2B21F4CFC1C1762E35136FC907F" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasic_A7C01EE3E415C56FB123E35136FD1EC4_totalLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic_A7C01EE3E415C56FB123E35136FD1EC4" 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_A7C01EE3E415C56FB123E35136FD1EC4_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic_A7C01EE3E415C56FB123E35136FD1EC4" 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_A7C01EE3E415C56FB123E35136FD1EC4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic_A7C01EE3E415C56FB123E35136FD1EC4" xlink:to="lab_us-gaap_EarningsPerShareBasic_A7C01EE3E415C56FB123E35136FD1EC4" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareDilutedAbstract_ABFB497CC5C504FEB217E35136FDB491_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDilutedAbstract_ABFB497CC5C504FEB217E35136FDB491" 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_ABFB497CC5C504FEB217E35136FDB491_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDilutedAbstract_ABFB497CC5C504FEB217E35136FDB491" 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_ABFB497CC5C504FEB217E35136FDB491" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract_ABFB497CC5C504FEB217E35136FDB491" xlink:to="lab_us-gaap_EarningsPerShareDilutedAbstract_ABFB497CC5C504FEB217E35136FDB491" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_E15672CB5A4EA12F8635E35136FD663C_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_E15672CB5A4EA12F8635E35136FD663C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income from continuing operations (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_E15672CB5A4EA12F8635E35136FD663C_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_E15672CB5A4EA12F8635E35136FD663C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations, Per Diluted Share</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_E15672CB5A4EA12F8635E35136FD663C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_E15672CB5A4EA12F8635E35136FD663C" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_E15672CB5A4EA12F8635E35136FD663C" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_96E494D504305D64B848E35136FD16B3_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_96E494D504305D64B848E35136FD16B3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (loss) from discontinued operations (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_96E494D504305D64B848E35136FD16B3_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_96E494D504305D64B848E35136FD16B3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Discontinued Operations and Disposal of Discontinued Operations, Net of Tax, Per Diluted Share</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_96E494D504305D64B848E35136FD16B3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_96E494D504305D64B848E35136FD16B3" xlink:to="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_96E494D504305D64B848E35136FD16B3" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_F9B1E8B19487B0CA044FE35136FD3234_totalLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted_F9B1E8B19487B0CA044FE35136FD3234" 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_F9B1E8B19487B0CA044FE35136FD3234_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted_F9B1E8B19487B0CA044FE35136FD3234" 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_F9B1E8B19487B0CA044FE35136FD3234" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted_F9B1E8B19487B0CA044FE35136FD3234" xlink:to="lab_us-gaap_EarningsPerShareDiluted_F9B1E8B19487B0CA044FE35136FD3234" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_7F485E36144556DDA144E35136FE8C94_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_7F485E36144556DDA144E35136FE8C94" 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_7F485E36144556DDA144E35136FE8C94_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_7F485E36144556DDA144E35136FE8C94" 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_7F485E36144556DDA144E35136FE8C94" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_7F485E36144556DDA144E35136FE8C94" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_7F485E36144556DDA144E35136FE8C94" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_A8AB60155FE808AB2355E35136FECB4B_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_A8AB60155FE808AB2355E35136FECB4B" 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_A8AB60155FE808AB2355E35136FECB4B_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_A8AB60155FE808AB2355E35136FECB4B" 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_A8AB60155FE808AB2355E35136FECB4B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_A8AB60155FE808AB2355E35136FECB4B" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_A8AB60155FE808AB2355E35136FECB4B" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_4C7033BB14815A39B262E35136FEB72C_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_4C7033BB14815A39B262E35136FEB72C" 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_4C7033BB14815A39B262E35136FEB72C_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_4C7033BB14815A39B262E35136FEB72C" 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_4C7033BB14815A39B262E35136FEB72C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_4C7033BB14815A39B262E35136FEB72C" xlink:to="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_4C7033BB14815A39B262E35136FEB72C" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareCashPaid_6F9422628DB18E044353E35136FEBD1C_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareCashPaid_6F9422628DB18E044353E35136FEBD1C" 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_6F9422628DB18E044353E35136FEBD1C_label_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareCashPaid_6F9422628DB18E044353E35136FEBD1C" 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_6F9422628DB18E044353E35136FEBD1C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockDividendsPerShareCashPaid_6F9422628DB18E044353E35136FEBD1C" xlink:to="lab_us-gaap_CommonStockDividendsPerShareCashPaid_6F9422628DB18E044353E35136FEBD1C" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_92B5F7116BBB5D8083ADE4879C57424E_label_en-US" xlink:label="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_92B5F7116BBB5D8083ADE4879C57424E" 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_92B5F7116BBB5D8083ADE4879C57424E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_92B5F7116BBB5D8083ADE4879C57424E" xlink:to="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_92B5F7116BBB5D8083ADE4879C57424E" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetIncomeLoss_32137FF3849BA7083187E4879C5807E3_terseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss_32137FF3849BA7083187E4879C5807E3" 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_32137FF3849BA7083187E4879C5807E3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss_32137FF3849BA7083187E4879C5807E3" xlink:to="lab_us-gaap_NetIncomeLoss_32137FF3849BA7083187E4879C5807E3" xlink:type="arc" />
    <link:label id="lab_cgnx_CashflowshedgesAbstract_9930A39E9E3B45F7B143E4879C58AB3D_terseLabel_en-US" xlink:label="lab_cgnx_CashflowshedgesAbstract_9930A39E9E3B45F7B143E4879C58AB3D" 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_9930A39E9E3B45F7B143E4879C58AB3D_label_en-US" xlink:label="lab_cgnx_CashflowshedgesAbstract_9930A39E9E3B45F7B143E4879C58AB3D" 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_9930A39E9E3B45F7B143E4879C58AB3D_documentation_en-US" xlink:label="lab_cgnx_CashflowshedgesAbstract_9930A39E9E3B45F7B143E4879C58AB3D" 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-20181231.xsd#cgnx_CashflowshedgesAbstract" xlink:label="loc_cgnx_CashflowshedgesAbstract_9930A39E9E3B45F7B143E4879C58AB3D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CashflowshedgesAbstract_9930A39E9E3B45F7B143E4879C58AB3D" xlink:to="lab_cgnx_CashflowshedgesAbstract_9930A39E9E3B45F7B143E4879C58AB3D" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_D5482F603392CF0A54B8E4879C58BAE7_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_D5482F603392CF0A54B8E4879C58BAE7" 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, ($5), and ($22) in 2018, 2017, and 2016, respectively</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_D5482F603392CF0A54B8E4879C58BAE7_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_D5482F603392CF0A54B8E4879C58BAE7" 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_D5482F603392CF0A54B8E4879C58BAE7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_D5482F603392CF0A54B8E4879C58BAE7" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_D5482F603392CF0A54B8E4879C58BAE7" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_8F53A78345B17FB70535E4879C582F7E_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_8F53A78345B17FB70535E4879C582F7E" 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_8F53A78345B17FB70535E4879C582F7E_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_8F53A78345B17FB70535E4879C582F7E" 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_8F53A78345B17FB70535E4879C582F7E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_8F53A78345B17FB70535E4879C582F7E" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_8F53A78345B17FB70535E4879C582F7E" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_88328EB4E726D70D6F60E4879C597050_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_88328EB4E726D70D6F60E4879C597050" 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_88328EB4E726D70D6F60E4879C597050_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_88328EB4E726D70D6F60E4879C597050" 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_88328EB4E726D70D6F60E4879C597050" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_88328EB4E726D70D6F60E4879C597050" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_88328EB4E726D70D6F60E4879C597050" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_91F746F1D5A1F56233B0E4879C59AAB0_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_91F746F1D5A1F56233B0E4879C59AAB0" 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_91F746F1D5A1F56233B0E4879C59AAB0_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_91F746F1D5A1F56233B0E4879C59AAB0" 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_91F746F1D5A1F56233B0E4879C59AAB0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_91F746F1D5A1F56233B0E4879C59AAB0" xlink:to="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_91F746F1D5A1F56233B0E4879C59AAB0" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_86C519094A33F208F2A2E4879C599B0C_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_86C519094A33F208F2A2E4879C599B0C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized gain (loss), net of tax of $188, $2, and $248 in 2018, 2017, and 2016, respectively</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_86C519094A33F208F2A2E4879C599B0C_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_86C519094A33F208F2A2E4879C599B0C" 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_86C519094A33F208F2A2E4879C599B0C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_86C519094A33F208F2A2E4879C599B0C" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_86C519094A33F208F2A2E4879C599B0C" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_17278E1B9057B83399E7E4879C594F73_negatedLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_17278E1B9057B83399E7E4879C594F73" 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_17278E1B9057B83399E7E4879C594F73_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_17278E1B9057B83399E7E4879C594F73" 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_17278E1B9057B83399E7E4879C594F73" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_17278E1B9057B83399E7E4879C594F73" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_17278E1B9057B83399E7E4879C594F73" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_191C63A369C6CD7851FDE4879C59D0BD_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_191C63A369C6CD7851FDE4879C59D0BD" 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_191C63A369C6CD7851FDE4879C59D0BD_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_191C63A369C6CD7851FDE4879C59D0BD" 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_191C63A369C6CD7851FDE4879C59D0BD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_191C63A369C6CD7851FDE4879C59D0BD" xlink:to="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_191C63A369C6CD7851FDE4879C59D0BD" xlink:type="arc" />
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_8D2F989C37EDDABEBC1BE4879C59E02A_terseLabel_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract_8D2F989C37EDDABEBC1BE4879C59E02A" 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_8D2F989C37EDDABEBC1BE4879C59E02A_label_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract_8D2F989C37EDDABEBC1BE4879C59E02A" 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_8D2F989C37EDDABEBC1BE4879C59E02A_documentation_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract_8D2F989C37EDDABEBC1BE4879C59E02A" 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-20181231.xsd#cgnx_CurrencytranslationadjustmentAbstract" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract_8D2F989C37EDDABEBC1BE4879C59E02A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_8D2F989C37EDDABEBC1BE4879C59E02A" xlink:to="lab_cgnx_CurrencytranslationadjustmentAbstract_8D2F989C37EDDABEBC1BE4879C59E02A" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_A09B1B58F06754EE8E90E4879C5A76B9_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_A09B1B58F06754EE8E90E4879C5A76B9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency translation adjustments, net of tax of $0, $0 and ($228) in 2018, 2017, and 2016, respectively</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_A09B1B58F06754EE8E90E4879C5A76B9_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_A09B1B58F06754EE8E90E4879C5A76B9" 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_A09B1B58F06754EE8E90E4879C5A76B9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_A09B1B58F06754EE8E90E4879C5A76B9" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_A09B1B58F06754EE8E90E4879C5A76B9" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_AC90C7BBA2741F659744E4879C5A32C7_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_AC90C7BBA2741F659744E4879C5A32C7" 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_AC90C7BBA2741F659744E4879C5A32C7_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_AC90C7BBA2741F659744E4879C5A32C7" 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_AC90C7BBA2741F659744E4879C5A32C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_AC90C7BBA2741F659744E4879C5A32C7" xlink:to="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_AC90C7BBA2741F659744E4879C5A32C7" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_45B0274FE865239F5EF2E4879C5AD147_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_45B0274FE865239F5EF2E4879C5AD147" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Other comprehensive income gain (loss), net of tax</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_45B0274FE865239F5EF2E4879C5AD147_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_45B0274FE865239F5EF2E4879C5AD147" 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_45B0274FE865239F5EF2E4879C5AD147" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_45B0274FE865239F5EF2E4879C5AD147" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_45B0274FE865239F5EF2E4879C5AD147" xlink:type="arc" />
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTax_2AE2506E843D9C7822E9E4879C5AF66E_totalLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax_2AE2506E843D9C7822E9E4879C5AF66E" 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_2AE2506E843D9C7822E9E4879C5AF66E_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax_2AE2506E843D9C7822E9E4879C5AF66E" 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_2AE2506E843D9C7822E9E4879C5AF66E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_2AE2506E843D9C7822E9E4879C5AF66E" xlink:to="lab_us-gaap_ComprehensiveIncomeNetOfTax_2AE2506E843D9C7822E9E4879C5AF66E" xlink:type="arc" />
    <link:label id="lab_us-gaap_SegmentReportingAbstract_CCDFED45B97E943C0857FA5C210B85CA_label_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract_CCDFED45B97E943C0857FA5C210B85CA" 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_CCDFED45B97E943C0857FA5C210B85CA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingAbstract_CCDFED45B97E943C0857FA5C210B85CA" xlink:to="lab_us-gaap_SegmentReportingAbstract_CCDFED45B97E943C0857FA5C210B85CA" xlink:type="arc" />
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_D0A34539C9A3722BC790FA5C210CDD73_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock_D0A34539C9A3722BC790FA5C210CDD73" 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_D0A34539C9A3722BC790FA5C210CDD73_label_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock_D0A34539C9A3722BC790FA5C210CDD73" 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_D0A34539C9A3722BC790FA5C210CDD73" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingDisclosureTextBlock_D0A34539C9A3722BC790FA5C210CDD73" xlink:to="lab_us-gaap_SegmentReportingDisclosureTextBlock_D0A34539C9A3722BC790FA5C210CDD73" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationsAbstract_D0060C29DD577E53EF3AFA5C22FF513A_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsAbstract_D0060C29DD577E53EF3AFA5C22FF513A" 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_D0060C29DD577E53EF3AFA5C22FF513A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_D0060C29DD577E53EF3AFA5C22FF513A" xlink:to="lab_us-gaap_BusinessCombinationsAbstract_D0060C29DD577E53EF3AFA5C22FF513A" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2F5A4C06069F85D36E17FA5C22FF9D18_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2F5A4C06069F85D36E17FA5C22FF9D18" 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_2F5A4C06069F85D36E17FA5C22FF9D18_label_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2F5A4C06069F85D36E17FA5C22FF9D18" 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_2F5A4C06069F85D36E17FA5C22FF9D18" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2F5A4C06069F85D36E17FA5C22FF9D18" xlink:to="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2F5A4C06069F85D36E17FA5C22FF9D18" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2059E876E9635C4CE6DEFA5C22FF10EF_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2059E876E9635C4CE6DEFA5C22FF10EF" 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_2059E876E9635C4CE6DEFA5C22FF10EF_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2059E876E9635C4CE6DEFA5C22FF10EF" 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_2059E876E9635C4CE6DEFA5C22FF10EF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2059E876E9635C4CE6DEFA5C22FF10EF" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2059E876E9635C4CE6DEFA5C22FF10EF" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3" 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_076B812E45F7231753C9FA5C230592C3_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3" 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_076B812E45F7231753C9FA5C230592C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_CustomerRelationshipsMember_2092FB9C6D8DDE123B9BFA5C2305D965_terseLabel_en-US" xlink:label="lab_us-gaap_CustomerRelationshipsMember_2092FB9C6D8DDE123B9BFA5C2305D965" 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_2092FB9C6D8DDE123B9BFA5C2305D965_label_en-US" xlink:label="lab_us-gaap_CustomerRelationshipsMember_2092FB9C6D8DDE123B9BFA5C2305D965" 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_2092FB9C6D8DDE123B9BFA5C2305D965" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerRelationshipsMember_2092FB9C6D8DDE123B9BFA5C2305D965" xlink:to="lab_us-gaap_CustomerRelationshipsMember_2092FB9C6D8DDE123B9BFA5C2305D965" xlink:type="arc" />
    <link:label id="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_425C7C9056C2B5E0E015FA5C2305BE11_terseLabel_en-US" xlink:label="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_425C7C9056C2B5E0E015FA5C2305BE11" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Technology-Based Intangible Assets [Member]</link:label>
    <link:label id="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_425C7C9056C2B5E0E015FA5C2305BE11_label_en-US" xlink:label="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_425C7C9056C2B5E0E015FA5C2305BE11" 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_425C7C9056C2B5E0E015FA5C2305BE11" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_425C7C9056C2B5E0E015FA5C2305BE11" xlink:to="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_425C7C9056C2B5E0E015FA5C2305BE11" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessAcquisitionAxis_AEA60FE07F221276ADE5FA5C23056084_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis_AEA60FE07F221276ADE5FA5C23056084" 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_AEA60FE07F221276ADE5FA5C23056084_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis_AEA60FE07F221276ADE5FA5C23056084" 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_AEA60FE07F221276ADE5FA5C23056084" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_AEA60FE07F221276ADE5FA5C23056084" xlink:to="lab_us-gaap_BusinessAcquisitionAxis_AEA60FE07F221276ADE5FA5C23056084" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessAcquisitionAcquireeDomain_89E618D6AE140F11B870FA5C23052DD4_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain_89E618D6AE140F11B870FA5C23052DD4" 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_89E618D6AE140F11B870FA5C23052DD4_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain_89E618D6AE140F11B870FA5C23052DD4" 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_89E618D6AE140F11B870FA5C23052DD4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_89E618D6AE140F11B870FA5C23052DD4" xlink:to="lab_us-gaap_BusinessAcquisitionAcquireeDomain_89E618D6AE140F11B870FA5C23052DD4" xlink:type="arc" />
    <link:label id="lab_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F_terseLabel_en-US" xlink:label="lab_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Webscan, Inc. [Member]</link:label>
    <link:label id="lab_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F_label_en-US" xlink:label="lab_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Webscan, Inc. [Member]</link:label>
    <link:label id="lab_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F_documentation_en-US" xlink:label="lab_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Webscan, Inc. [Member]</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_WebscanInc.Member" xlink:label="loc_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" xlink:to="lab_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" 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_C5B9ECE8A3DD963AB607FA5C23062022_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" 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_C5B9ECE8A3DD963AB607FA5C23062022" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="lab_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferred1_9E0A6B971D88487BE274FA5C2306DCBC_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferred1_9E0A6B971D88487BE274FA5C2306DCBC" 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_9E0A6B971D88487BE274FA5C2306DCBC_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferred1_9E0A6B971D88487BE274FA5C2306DCBC" 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_9E0A6B971D88487BE274FA5C2306DCBC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationConsiderationTransferred1_9E0A6B971D88487BE274FA5C2306DCBC" xlink:to="lab_us-gaap_BusinessCombinationConsiderationTransferred1_9E0A6B971D88487BE274FA5C2306DCBC" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesGross_B6540E8CE31C2E74C099FA5C23070CF0_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesGross_B6540E8CE31C2E74C099FA5C23070CF0" 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_B6540E8CE31C2E74C099FA5C23070CF0_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesGross_B6540E8CE31C2E74C099FA5C23070CF0" 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_B6540E8CE31C2E74C099FA5C23070CF0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireBusinessesGross_B6540E8CE31C2E74C099FA5C23070CF0" xlink:to="lab_us-gaap_PaymentsToAcquireBusinessesGross_B6540E8CE31C2E74C099FA5C23070CF0" xlink:type="arc" />
    <link:label id="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_E0B288C9535ED8AD22D5FA5C2307085D_terseLabel_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_E0B288C9535ED8AD22D5FA5C2307085D" 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_E0B288C9535ED8AD22D5FA5C2307085D_label_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_E0B288C9535ED8AD22D5FA5C2307085D" 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_E0B288C9535ED8AD22D5FA5C2307085D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_E0B288C9535ED8AD22D5FA5C2307085D" xlink:to="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_E0B288C9535ED8AD22D5FA5C2307085D" xlink:type="arc" />
    <link:label id="lab_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B_terseLabel_en-US" xlink:label="lab_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" 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_A87487E6A488575F8C79FA5C2307FE2B_label_en-US" xlink:label="lab_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" 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_A87487E6A488575F8C79FA5C2307FE2B_documentation_en-US" xlink:label="lab_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" 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-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" xlink:to="lab_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_398722868C6FD3272F1CFA5C2516B156_label_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract_398722868C6FD3272F1CFA5C2516B156" 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_398722868C6FD3272F1CFA5C2516B156" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_398722868C6FD3272F1CFA5C2516B156" xlink:to="lab_us-gaap_AccountingPoliciesAbstract_398722868C6FD3272F1CFA5C2516B156" xlink:type="arc" />
    <link:label id="lab_us-gaap_SignificantAccountingPoliciesTextBlock_EC95AD52A9E23EEB107FFA5C25176FAE_terseLabel_en-US" xlink:label="lab_us-gaap_SignificantAccountingPoliciesTextBlock_EC95AD52A9E23EEB107FFA5C25176FAE" 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_EC95AD52A9E23EEB107FFA5C25176FAE_label_en-US" xlink:label="lab_us-gaap_SignificantAccountingPoliciesTextBlock_EC95AD52A9E23EEB107FFA5C25176FAE" 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_EC95AD52A9E23EEB107FFA5C25176FAE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SignificantAccountingPoliciesTextBlock_EC95AD52A9E23EEB107FFA5C25176FAE" xlink:to="lab_us-gaap_SignificantAccountingPoliciesTextBlock_EC95AD52A9E23EEB107FFA5C25176FAE" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_5B0A5C92E3FB380722A5E3837CE95600_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract_5B0A5C92E3FB380722A5E3837CE95600" 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_5B0A5C92E3FB380722A5E3837CE95600" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_5B0A5C92E3FB380722A5E3837CE95600" xlink:to="lab_us-gaap_IncomeTaxDisclosureAbstract_5B0A5C92E3FB380722A5E3837CE95600" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_6AE8350D491A6759BB6FE3837CE9DDCD_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current deferred tax assets:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_6AE8350D491A6759BB6FE3837CE9DDCD_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_6AE8350D491A6759BB6FE3837CE9DDCD" 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_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:to="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:type="arc" />
    <link:label id="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F" 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_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets Tax Credit Carryforwards Foreign And State</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred tax assets tax credit carry forwards foreign and state.</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F" xlink:to="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_CEF33824F78120E54FE7E3837CEA4C49_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_CEF33824F78120E54FE7E3837CEA4C49" 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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_CEF33824F78120E54FE7E3837CEA4C49_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_CEF33824F78120E54FE7E3837CEA4C49" 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_CEF33824F78120E54FE7E3837CEA4C49" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_CEF33824F78120E54FE7E3837CEA4C49" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_CEF33824F78120E54FE7E3837CEA4C49" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_FDA9AB45AEC0D5685BE7E3837CEA2ABC_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_FDA9AB45AEC0D5685BE7E3837CEA2ABC" 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_FDA9AB45AEC0D5685BE7E3837CEA2ABC_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_FDA9AB45AEC0D5685BE7E3837CEA2ABC" 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_FDA9AB45AEC0D5685BE7E3837CEA2ABC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_FDA9AB45AEC0D5685BE7E3837CEA2ABC" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_FDA9AB45AEC0D5685BE7E3837CEA2ABC" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsInventory_0AD7984DB58210449A56E3837CEAB20F_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory_0AD7984DB58210449A56E3837CEAB20F" 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_0AD7984DB58210449A56E3837CEAB20F_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory_0AD7984DB58210449A56E3837CEAB20F" 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_0AD7984DB58210449A56E3837CEAB20F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsInventory_0AD7984DB58210449A56E3837CEAB20F" xlink:to="lab_us-gaap_DeferredTaxAssetsInventory_0AD7984DB58210449A56E3837CEAB20F" xlink:type="arc" />
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_DB233DB63F957A5549DFE3837CEAD936_terseLabel_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_DB233DB63F957A5549DFE3837CEAD936" 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_DB233DB63F957A5549DFE3837CEAD936_label_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_DB233DB63F957A5549DFE3837CEAD936" 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_DB233DB63F957A5549DFE3837CEAD936_documentation_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_DB233DB63F957A5549DFE3837CEAD936" 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-20181231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_DB233DB63F957A5549DFE3837CEAD936" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_DB233DB63F957A5549DFE3837CEAD936" xlink:to="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_DB233DB63F957A5549DFE3837CEAD936" xlink:type="arc" />
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_28C5F49F8449CEBDDC79E3837CEBD952_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_28C5F49F8449CEBDDC79E3837CEBD952" 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_28C5F49F8449CEBDDC79E3837CEBD952_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_28C5F49F8449CEBDDC79E3837CEBD952" 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_28C5F49F8449CEBDDC79E3837CEBD952_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_28C5F49F8449CEBDDC79E3837CEBD952" 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-20181231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_28C5F49F8449CEBDDC79E3837CEBD952" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_28C5F49F8449CEBDDC79E3837CEBD952" xlink:to="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_28C5F49F8449CEBDDC79E3837CEBD952" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossNoncurrent_09145D23B7135A7C74AFE3837CEB97B7_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossNoncurrent_09145D23B7135A7C74AFE3837CEB97B7" 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_09145D23B7135A7C74AFE3837CEB97B7_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossNoncurrent_09145D23B7135A7C74AFE3837CEB97B7" 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_09145D23B7135A7C74AFE3837CEB97B7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_09145D23B7135A7C74AFE3837CEB97B7" xlink:to="lab_us-gaap_DeferredTaxAssetsGrossNoncurrent_09145D23B7135A7C74AFE3837CEB97B7" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_DE1762CCF50D3454FACCE3837CEBE04C_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract_DE1762CCF50D3454FACCE3837CEBE04C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current deferred tax liabilities:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_DE1762CCF50D3454FACCE3837CEBE04C_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract_DE1762CCF50D3454FACCE3837CEBE04C" 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_DE1762CCF50D3454FACCE3837CEBE04C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_DE1762CCF50D3454FACCE3837CEBE04C" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesAbstract_DE1762CCF50D3454FACCE3837CEBE04C" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_E80B788FE3D9286FA12DE3837CEBCE9C_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_E80B788FE3D9286FA12DE3837CEBCE9C" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Nondeductible intangible assets</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_E80B788FE3D9286FA12DE3837CEBCE9C_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_E80B788FE3D9286FA12DE3837CEBCE9C" 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_E80B788FE3D9286FA12DE3837CEBCE9C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_E80B788FE3D9286FA12DE3837CEBCE9C" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_E80B788FE3D9286FA12DE3837CEBCE9C" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesNoncurrent_AC82870E17D9F195B062E3837CEB6639_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesNoncurrent_AC82870E17D9F195B062E3837CEB6639" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Gross non-current deferred tax liabilities</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesNoncurrent_AC82870E17D9F195B062E3837CEB6639_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesNoncurrent_AC82870E17D9F195B062E3837CEB6639" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Net, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesNoncurrent_AC82870E17D9F195B062E3837CEB6639" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesNoncurrent_AC82870E17D9F195B062E3837CEB6639" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesNoncurrent_AC82870E17D9F195B062E3837CEB6639" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_A5E520514C06EC029A4BE3837CEC6BA0_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_A5E520514C06EC029A4BE3837CEC6BA0" 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_A5E520514C06EC029A4BE3837CEC6BA0_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_A5E520514C06EC029A4BE3837CEC6BA0" 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_A5E520514C06EC029A4BE3837CEC6BA0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_A5E520514C06EC029A4BE3837CEC6BA0" xlink:to="lab_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_A5E520514C06EC029A4BE3837CEC6BA0" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_21375A50C9E43CB232C0E3837CECF13E_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_21375A50C9E43CB232C0E3837CECF13E" 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_21375A50C9E43CB232C0E3837CECF13E_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_21375A50C9E43CB232C0E3837CECF13E" 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_21375A50C9E43CB232C0E3837CECF13E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_21375A50C9E43CB232C0E3837CECF13E" xlink:to="lab_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_21375A50C9E43CB232C0E3837CECF13E" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current deferred tax liabilities:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Gross, Classification [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesOther_B8C21550BFECAA2D316CE3837CEC3087_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesOther_B8C21550BFECAA2D316CE3837CEC3087" 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_B8C21550BFECAA2D316CE3837CEC3087_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesOther_B8C21550BFECAA2D316CE3837CEC3087" 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_B8C21550BFECAA2D316CE3837CEC3087" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesOther_B8C21550BFECAA2D316CE3837CEC3087" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesOther_B8C21550BFECAA2D316CE3837CEC3087" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_33185FEDA0B0A2237834E3837CED9FD8_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_33185FEDA0B0A2237834E3837CED9FD8" 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:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_33185FEDA0B0A2237834E3837CED9FD8_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_33185FEDA0B0A2237834E3837CED9FD8" 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_33185FEDA0B0A2237834E3837CED9FD8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_33185FEDA0B0A2237834E3837CED9FD8" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_33185FEDA0B0A2237834E3837CED9FD8" xlink:type="arc" />
    <link:label id="lab_us-gaap_TaxCreditCarryforwardTable_02261D7D9A35E0F814F5E3837CEDE295_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardTable_02261D7D9A35E0F814F5E3837CEDE295" 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_02261D7D9A35E0F814F5E3837CEDE295_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardTable_02261D7D9A35E0F814F5E3837CEDE295" 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_02261D7D9A35E0F814F5E3837CEDE295" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_02261D7D9A35E0F814F5E3837CEDE295" xlink:to="lab_us-gaap_TaxCreditCarryforwardTable_02261D7D9A35E0F814F5E3837CEDE295" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_EB31FDD07E9D1D08025FE3837CF27F94_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_EB31FDD07E9D1D08025FE3837CF27F94" 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_EB31FDD07E9D1D08025FE3837CF27F94_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_EB31FDD07E9D1D08025FE3837CF27F94" 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_EB31FDD07E9D1D08025FE3837CF27F94" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_EB31FDD07E9D1D08025FE3837CF27F94" xlink:to="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_EB31FDD07E9D1D08025FE3837CF27F94" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetDomain_88D42660CD00E111BC91E3837CF293F1_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetDomain_88D42660CD00E111BC91E3837CF293F1" 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_88D42660CD00E111BC91E3837CF293F1_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetDomain_88D42660CD00E111BC91E3837CF293F1" 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_88D42660CD00E111BC91E3837CF293F1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetDomain_88D42660CD00E111BC91E3837CF293F1" xlink:to="lab_us-gaap_DeferredTaxAssetDomain_88D42660CD00E111BC91E3837CF293F1" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_11A6A906B8A184471E39E3837CF21BEC_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_11A6A906B8A184471E39E3837CF21BEC" 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_11A6A906B8A184471E39E3837CF21BEC_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_11A6A906B8A184471E39E3837CF21BEC" 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_11A6A906B8A184471E39E3837CF21BEC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_11A6A906B8A184471E39E3837CF21BEC" xlink:to="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_11A6A906B8A184471E39E3837CF21BEC" xlink:type="arc" />
    <link:label id="lab_us-gaap_TaxCreditCarryforwardLineItems_35A917FD66B3A6A7D6DBE3837CF3218B_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardLineItems_35A917FD66B3A6A7D6DBE3837CF3218B" 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_35A917FD66B3A6A7D6DBE3837CF3218B_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardLineItems_35A917FD66B3A6A7D6DBE3837CF3218B" 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_35A917FD66B3A6A7D6DBE3837CF3218B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_35A917FD66B3A6A7D6DBE3837CF3218B" xlink:to="lab_us-gaap_TaxCreditCarryforwardLineItems_35A917FD66B3A6A7D6DBE3837CF3218B" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_E26C651D3DFF3D2B806CE3837CF36BA7_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance_E26C651D3DFF3D2B806CE3837CF36BA7" 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_E26C651D3DFF3D2B806CE3837CF36BA7_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance_E26C651D3DFF3D2B806CE3837CF36BA7" 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_E26C651D3DFF3D2B806CE3837CF36BA7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsValuationAllowance_E26C651D3DFF3D2B806CE3837CF36BA7" xlink:to="lab_us-gaap_DeferredTaxAssetsValuationAllowance_E26C651D3DFF3D2B806CE3837CF36BA7" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_BED2205FAB9C2ED5EC0B9606F0D99B6D_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_BED2205FAB9C2ED5EC0B9606F0D99B6D" 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_BED2205FAB9C2ED5EC0B9606F0D99B6D_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_BED2205FAB9C2ED5EC0B9606F0D99B6D" 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_BED2205FAB9C2ED5EC0B9606F0D99B6D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_BED2205FAB9C2ED5EC0B9606F0D99B6D" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_BED2205FAB9C2ED5EC0B9606F0D99B6D" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryDisclosureAbstract_0CC7EEF638C8A0B1AAFBFA5C24AD24A2_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureAbstract_0CC7EEF638C8A0B1AAFBFA5C24AD24A2" 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_0CC7EEF638C8A0B1AAFBFA5C24AD24A2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_0CC7EEF638C8A0B1AAFBFA5C24AD24A2" xlink:to="lab_us-gaap_InventoryDisclosureAbstract_0CC7EEF638C8A0B1AAFBFA5C24AD24A2" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_BB110B6FCC02C5157ED0FA5C24AD487F_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_BB110B6FCC02C5157ED0FA5C24AD487F" 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_BB110B6FCC02C5157ED0FA5C24AD487F_label_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_BB110B6FCC02C5157ED0FA5C24AD487F" 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_BB110B6FCC02C5157ED0FA5C24AD487F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_BB110B6FCC02C5157ED0FA5C24AD487F" xlink:to="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_BB110B6FCC02C5157ED0FA5C24AD487F" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_8F5C8C3CE18B30B73187FA5C257F2DC9_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract_8F5C8C3CE18B30B73187FA5C257F2DC9" 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_8F5C8C3CE18B30B73187FA5C257F2DC9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_8F5C8C3CE18B30B73187FA5C257F2DC9" xlink:to="lab_us-gaap_FairValueDisclosuresAbstract_8F5C8C3CE18B30B73187FA5C257F2DC9" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_0E57C9EE2F212360EAF4FA5C257F408A_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock_0E57C9EE2F212360EAF4FA5C257F408A" 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_0E57C9EE2F212360EAF4FA5C257F408A_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock_0E57C9EE2F212360EAF4FA5C257F408A" 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_0E57C9EE2F212360EAF4FA5C257F408A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresTextBlock_0E57C9EE2F212360EAF4FA5C257F408A" xlink:to="lab_us-gaap_FairValueDisclosuresTextBlock_0E57C9EE2F212360EAF4FA5C257F408A" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_1C0C2BA7728697DB503BFA5C20A83FE0_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_1C0C2BA7728697DB503BFA5C20A83FE0" 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_1C0C2BA7728697DB503BFA5C20A83FE0_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_1C0C2BA7728697DB503BFA5C20A83FE0" 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_1C0C2BA7728697DB503BFA5C20A83FE0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_1C0C2BA7728697DB503BFA5C20A83FE0" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_1C0C2BA7728697DB503BFA5C20A83FE0" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentFederalTaxExpenseBenefit_10F8318A94E3352242F3FA5C20A8E22C_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentFederalTaxExpenseBenefit_10F8318A94E3352242F3FA5C20A8E22C" 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_10F8318A94E3352242F3FA5C20A8E22C_label_en-US" xlink:label="lab_us-gaap_CurrentFederalTaxExpenseBenefit_10F8318A94E3352242F3FA5C20A8E22C" 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_10F8318A94E3352242F3FA5C20A8E22C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentFederalTaxExpenseBenefit_10F8318A94E3352242F3FA5C20A8E22C" xlink:to="lab_us-gaap_CurrentFederalTaxExpenseBenefit_10F8318A94E3352242F3FA5C20A8E22C" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_82E750F354BC99762129FA5C20A82ADF_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_82E750F354BC99762129FA5C20A82ADF" 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_82E750F354BC99762129FA5C20A82ADF_label_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_82E750F354BC99762129FA5C20A82ADF" 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_82E750F354BC99762129FA5C20A82ADF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_82E750F354BC99762129FA5C20A82ADF" xlink:to="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_82E750F354BC99762129FA5C20A82ADF" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_BDB3D9CEDC89F61B92BFFA5C20A92504_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit_BDB3D9CEDC89F61B92BFFA5C20A92504" 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_BDB3D9CEDC89F61B92BFFA5C20A92504_label_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit_BDB3D9CEDC89F61B92BFFA5C20A92504" 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_BDB3D9CEDC89F61B92BFFA5C20A92504" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentForeignTaxExpenseBenefit_BDB3D9CEDC89F61B92BFFA5C20A92504" xlink:to="lab_us-gaap_CurrentForeignTaxExpenseBenefit_BDB3D9CEDC89F61B92BFFA5C20A92504" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_5F1799FDA2744A00C7AEFA5C20A9947A_totalLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_5F1799FDA2744A00C7AEFA5C20A9947A" 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_5F1799FDA2744A00C7AEFA5C20A9947A_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_5F1799FDA2744A00C7AEFA5C20A9947A" 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_5F1799FDA2744A00C7AEFA5C20A9947A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_5F1799FDA2744A00C7AEFA5C20A9947A" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_5F1799FDA2744A00C7AEFA5C20A9947A" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_C6AFA0D0C4E5BCE58904FA5C20A996D4_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_C6AFA0D0C4E5BCE58904FA5C20A996D4" 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_C6AFA0D0C4E5BCE58904FA5C20A996D4_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_C6AFA0D0C4E5BCE58904FA5C20A996D4" 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_C6AFA0D0C4E5BCE58904FA5C20A996D4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_C6AFA0D0C4E5BCE58904FA5C20A996D4" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_C6AFA0D0C4E5BCE58904FA5C20A996D4" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_C4FA87CC011FCBFD0E4BFA5C20A9E45E_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_C4FA87CC011FCBFD0E4BFA5C20A9E45E" 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_C4FA87CC011FCBFD0E4BFA5C20A9E45E_label_en-US" xlink:label="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_C4FA87CC011FCBFD0E4BFA5C20A9E45E" 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_C4FA87CC011FCBFD0E4BFA5C20A9E45E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_C4FA87CC011FCBFD0E4BFA5C20A9E45E" xlink:to="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_C4FA87CC011FCBFD0E4BFA5C20A9E45E" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_3B6D7CF24B179F722494FA5C20A9F424_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_3B6D7CF24B179F722494FA5C20A9F424" 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_3B6D7CF24B179F722494FA5C20A9F424_label_en-US" xlink:label="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_3B6D7CF24B179F722494FA5C20A9F424" 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_3B6D7CF24B179F722494FA5C20A9F424" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_3B6D7CF24B179F722494FA5C20A9F424" xlink:to="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_3B6D7CF24B179F722494FA5C20A9F424" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_B77091DA375F572F789DFA5C20AAC901_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_B77091DA375F572F789DFA5C20AAC901" 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_B77091DA375F572F789DFA5C20AAC901_label_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_B77091DA375F572F789DFA5C20AAC901" 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_B77091DA375F572F789DFA5C20AAC901" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_B77091DA375F572F789DFA5C20AAC901" xlink:to="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_B77091DA375F572F789DFA5C20AAC901" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_EB5926859845D70E999CFA5C20AA5190_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_EB5926859845D70E999CFA5C20AA5190" 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_EB5926859845D70E999CFA5C20AA5190_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_EB5926859845D70E999CFA5C20AA5190" 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_EB5926859845D70E999CFA5C20AA5190" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_EB5926859845D70E999CFA5C20AA5190" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_EB5926859845D70E999CFA5C20AA5190" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_ED909099BA6AD1D88652FA5C20AAB042_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit_ED909099BA6AD1D88652FA5C20AAB042" 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_ED909099BA6AD1D88652FA5C20AAB042" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_ED909099BA6AD1D88652FA5C20AAB042" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit_ED909099BA6AD1D88652FA5C20AAB042" xlink:type="arc" />
    <link:label id="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_1998D9A59F4A0CEB7E92E44668C8220D_verboseLabel_en-US" xlink:label="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_1998D9A59F4A0CEB7E92E44668C8220D" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Completed Technologies [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_1998D9A59F4A0CEB7E92E44668C8220D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_1998D9A59F4A0CEB7E92E44668C8220D" xlink:to="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_1998D9A59F4A0CEB7E92E44668C8220D" xlink:type="arc" />
    <link:label id="lab_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157_terseLabel_en-US" xlink:label="lab_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Manatee Works, Inc. [Member]</link:label>
    <link:label id="lab_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157_label_en-US" xlink:label="lab_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" 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_FBF605E84EE3B6C7BF5AE44668C91157_documentation_en-US" xlink:label="lab_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" 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-20181231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" xlink:to="lab_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_AFA3A0E9B7DCD73FD92BE44668C9FE6E_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_AFA3A0E9B7DCD73FD92BE44668C9FE6E" 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_AFA3A0E9B7DCD73FD92BE44668C9FE6E_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_AFA3A0E9B7DCD73FD92BE44668C9FE6E" 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_AFA3A0E9B7DCD73FD92BE44668C9FE6E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_AFA3A0E9B7DCD73FD92BE44668C9FE6E" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_AFA3A0E9B7DCD73FD92BE44668C9FE6E" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_0243985D08329DF170D6E44668C982A6_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_0243985D08329DF170D6E44668C982A6" 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_0243985D08329DF170D6E44668C982A6_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_0243985D08329DF170D6E44668C982A6" 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_0243985D08329DF170D6E44668C982A6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_0243985D08329DF170D6E44668C982A6" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_0243985D08329DF170D6E44668C982A6" xlink:type="arc" />
    <link:label id="lab_us-gaap_Goodwill_5428547A5F7654DB8005E44668CA2A20_terseLabel_en-US" xlink:label="lab_us-gaap_Goodwill_5428547A5F7654DB8005E44668CA2A20" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_Goodwill_5428547A5F7654DB8005E44668CA2A20_label_en-US" xlink:label="lab_us-gaap_Goodwill_5428547A5F7654DB8005E44668CA2A20" 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_5428547A5F7654DB8005E44668CA2A20" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill_5428547A5F7654DB8005E44668CA2A20" xlink:to="lab_us-gaap_Goodwill_5428547A5F7654DB8005E44668CA2A20" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_0227BAD51F63006B4D26E44668CAAD38_totalLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_0227BAD51F63006B4D26E44668CAAD38" 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_0227BAD51F63006B4D26E44668CAAD38_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_0227BAD51F63006B4D26E44668CAAD38" 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_0227BAD51F63006B4D26E44668CAAD38" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_0227BAD51F63006B4D26E44668CAAD38" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_0227BAD51F63006B4D26E44668CAAD38" xlink:type="arc" />
    <link:label id="lab_us-gaap_PayablesAndAccrualsAbstract_0531CE682CEBB995541DFA5C266EB7DD_label_en-US" xlink:label="lab_us-gaap_PayablesAndAccrualsAbstract_0531CE682CEBB995541DFA5C266EB7DD" 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_0531CE682CEBB995541DFA5C266EB7DD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_0531CE682CEBB995541DFA5C266EB7DD" xlink:to="lab_us-gaap_PayablesAndAccrualsAbstract_0531CE682CEBB995541DFA5C266EB7DD" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_BEC80090B92FD70A6917FA5C266E32FB_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_BEC80090B92FD70A6917FA5C266E32FB" 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_BEC80090B92FD70A6917FA5C266E32FB_label_en-US" xlink:label="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_BEC80090B92FD70A6917FA5C266E32FB" 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_BEC80090B92FD70A6917FA5C266E32FB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_BEC80090B92FD70A6917FA5C266E32FB" xlink:to="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_BEC80090B92FD70A6917FA5C266E32FB" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_CC72DB48246481DB5E9EFA5C21FF2CF1_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_CC72DB48246481DB5E9EFA5C21FF2CF1" 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_CC72DB48246481DB5E9EFA5C21FF2CF1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_CC72DB48246481DB5E9EFA5C21FF2CF1" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_CC72DB48246481DB5E9EFA5C21FF2CF1" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_50AB55C4CE4B49AC0793FA5C22049A65_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_50AB55C4CE4B49AC0793FA5C22049A65" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Future Minimum Rental Payments Under Lease Agreements</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_50AB55C4CE4B49AC0793FA5C22049A65_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_50AB55C4CE4B49AC0793FA5C22049A65" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Future Minimum Rental Payments for Operating Leases [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_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_50AB55C4CE4B49AC0793FA5C22049A65" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_50AB55C4CE4B49AC0793FA5C22049A65" xlink:to="lab_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_50AB55C4CE4B49AC0793FA5C22049A65" xlink:type="arc" />
    <link:label id="lab_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753_terseLabel_en-US" xlink:label="lab_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Future Minimum Rental Receipts Under Non - Cancelable Lease Agreements</link:label>
    <link:label id="lab_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753_label_en-US" xlink:label="lab_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule Of Future Minimum Rental Receipts For Operating Leases Table [Table Text Block]</link:label>
    <link:label id="lab_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753_documentation_en-US" xlink:label="lab_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Schedule of future minimum rental receipts for operating leases.</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock" xlink:label="loc_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753" xlink:to="lab_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753" xlink:type="arc" />
    <link:label id="lab_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_563E97EB1089A47DB3BAE834A35807BF_label_en-US" xlink:label="lab_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_563E97EB1089A47DB3BAE834A35807BF" 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_563E97EB1089A47DB3BAE834A35807BF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_563E97EB1089A47DB3BAE834A35807BF" xlink:to="lab_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_563E97EB1089A47DB3BAE834A35807BF" xlink:type="arc" />
    <link:label id="lab_us-gaap_GrossProfit_EA22BB198E857910BDEBE834A35AD6F2_terseLabel_en-US" xlink:label="lab_us-gaap_GrossProfit_EA22BB198E857910BDEBE834A35AD6F2" 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_EA22BB198E857910BDEBE834A35AD6F2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GrossProfit_EA22BB198E857910BDEBE834A35AD6F2" xlink:to="lab_us-gaap_GrossProfit_EA22BB198E857910BDEBE834A35AD6F2" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingIncomeLoss_DFF381E16998A8459F00E834A35B2DEF_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss_DFF381E16998A8459F00E834A35B2DEF" 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_DFF381E16998A8459F00E834A35B2DEF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingIncomeLoss_DFF381E16998A8459F00E834A35B2DEF" xlink:to="lab_us-gaap_OperatingIncomeLoss_DFF381E16998A8459F00E834A35B2DEF" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetIncomeLoss_7FD1F7DBFB30519D642CE834A35B160A_verboseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss_7FD1F7DBFB30519D642CE834A35B160A" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net income (loss)</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_7FD1F7DBFB30519D642CE834A35B160A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss_7FD1F7DBFB30519D642CE834A35B160A" xlink:to="lab_us-gaap_NetIncomeLoss_7FD1F7DBFB30519D642CE834A35B160A" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasic_6FAC2F54C563B874070CE834A3637ECA_verboseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic_6FAC2F54C563B874070CE834A3637ECA" 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_6FAC2F54C563B874070CE834A3637ECA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic_6FAC2F54C563B874070CE834A3637ECA" xlink:to="lab_us-gaap_EarningsPerShareBasic_6FAC2F54C563B874070CE834A3637ECA" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_8795FF347A3CD32EE3B0E834A363246D_verboseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted_8795FF347A3CD32EE3B0E834A363246D" 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_8795FF347A3CD32EE3B0E834A363246D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted_8795FF347A3CD32EE3B0E834A363246D" xlink:to="lab_us-gaap_EarningsPerShareDiluted_8795FF347A3CD32EE3B0E834A363246D" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_E562E929FAD635E04A1FE834A3632FF6_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_E562E929FAD635E04A1FE834A3632FF6" 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_E562E929FAD635E04A1FE834A3632FF6_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_E562E929FAD635E04A1FE834A3632FF6" 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_E562E929FAD635E04A1FE834A3632FF6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_E562E929FAD635E04A1FE834A3632FF6" xlink:to="lab_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_E562E929FAD635E04A1FE834A3632FF6" xlink:type="arc" />
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_457A87B4912B86CEB3B3E834A36439D1_verboseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_457A87B4912B86CEB3B3E834A36439D1" 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_457A87B4912B86CEB3B3E834A36439D1_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_457A87B4912B86CEB3B3E834A36439D1" 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_457A87B4912B86CEB3B3E834A36439D1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_457A87B4912B86CEB3B3E834A36439D1" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_457A87B4912B86CEB3B3E834A36439D1" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_46018249B5A19BD2E4D1E854C84CB97A_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_46018249B5A19BD2E4D1E854C84CB97A" 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_46018249B5A19BD2E4D1E854C84CB97A_label_en-US" xlink:label="lab_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_46018249B5A19BD2E4D1E854C84CB97A" 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_46018249B5A19BD2E4D1E854C84CB97A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_46018249B5A19BD2E4D1E854C84CB97A" xlink:to="lab_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_46018249B5A19BD2E4D1E854C84CB97A" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_67C4E8A249C1D007C99FE3A8740D4EA7_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_67C4E8A249C1D007C99FE3A8740D4EA7" 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_67C4E8A249C1D007C99FE3A8740D4EA7_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_67C4E8A249C1D007C99FE3A8740D4EA7" 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_67C4E8A249C1D007C99FE3A8740D4EA7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_67C4E8A249C1D007C99FE3A8740D4EA7" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_67C4E8A249C1D007C99FE3A8740D4EA7" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_DBC12D7AC07CB42AD583E3A8740DB3C3_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_DBC12D7AC07CB42AD583E3A8740DB3C3" 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_DBC12D7AC07CB42AD583E3A8740DB3C3_label_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_DBC12D7AC07CB42AD583E3A8740DB3C3" 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_DBC12D7AC07CB42AD583E3A8740DB3C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_DBC12D7AC07CB42AD583E3A8740DB3C3" xlink:to="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_DBC12D7AC07CB42AD583E3A8740DB3C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7" 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_03CC19977D54E95396AFE3A8740E68D7_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7" 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_03CC19977D54E95396AFE3A8740E68D7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7" xlink:to="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_03CC19977D54E95396AFE3A8740E68D7" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_31533A7E4D9E72354C70E3A8740E4E1A_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member_31533A7E4D9E72354C70E3A8740E4E1A" 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) [Member]</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_31533A7E4D9E72354C70E3A8740E4E1A_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member_31533A7E4D9E72354C70E3A8740E4E1A" 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_31533A7E4D9E72354C70E3A8740E4E1A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel1Member_31533A7E4D9E72354C70E3A8740E4E1A" xlink:to="lab_us-gaap_FairValueInputsLevel1Member_31533A7E4D9E72354C70E3A8740E4E1A" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_FD6C4790C160277ACAA8E3A8740E932D_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member_FD6C4790C160277ACAA8E3A8740E932D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Significant Other Observable Inputs (Level 2) [Member]</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_FD6C4790C160277ACAA8E3A8740E932D_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member_FD6C4790C160277ACAA8E3A8740E932D" 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_FD6C4790C160277ACAA8E3A8740E932D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel2Member_FD6C4790C160277ACAA8E3A8740E932D" xlink:to="lab_us-gaap_FairValueInputsLevel2Member_FD6C4790C160277ACAA8E3A8740E932D" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_3270998686FE2E2EE047E3A8740E09B9_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member_3270998686FE2E2EE047E3A8740E09B9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 3 [Member]</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_3270998686FE2E2EE047E3A8740E09B9_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member_3270998686FE2E2EE047E3A8740E09B9" 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_3270998686FE2E2EE047E3A8740E09B9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel3Member_3270998686FE2E2EE047E3A8740E09B9" xlink:to="lab_us-gaap_FairValueInputsLevel3Member_3270998686FE2E2EE047E3A8740E09B9" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueByMeasurementFrequencyAxis_F8D14156C98C7D645E07E3A8740F1073_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis_F8D14156C98C7D645E07E3A8740F1073" 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_F8D14156C98C7D645E07E3A8740F1073_label_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis_F8D14156C98C7D645E07E3A8740F1073" 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_F8D14156C98C7D645E07E3A8740F1073" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_F8D14156C98C7D645E07E3A8740F1073" xlink:to="lab_us-gaap_FairValueByMeasurementFrequencyAxis_F8D14156C98C7D645E07E3A8740F1073" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_EAD55EB273999ECD76B6E3A8740F026E_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain_EAD55EB273999ECD76B6E3A8740F026E" 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_EAD55EB273999ECD76B6E3A8740F026E_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain_EAD55EB273999ECD76B6E3A8740F026E" 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_EAD55EB273999ECD76B6E3A8740F026E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_EAD55EB273999ECD76B6E3A8740F026E" xlink:to="lab_us-gaap_FairValueMeasurementFrequencyDomain_EAD55EB273999ECD76B6E3A8740F026E" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_0A3D5D4955A14B7B953EE3A8740FA817_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember_0A3D5D4955A14B7B953EE3A8740FA817" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Measurements, Recurring [Member]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_0A3D5D4955A14B7B953EE3A8740FA817_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember_0A3D5D4955A14B7B953EE3A8740FA817" 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_0A3D5D4955A14B7B953EE3A8740FA817" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsRecurringMember_0A3D5D4955A14B7B953EE3A8740FA817" xlink:to="lab_us-gaap_FairValueMeasurementsRecurringMember_0A3D5D4955A14B7B953EE3A8740FA817" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" 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_C4027D99DAC87C9B68ECE3A8740FB523_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" 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_C4027D99DAC87C9B68ECE3A8740FB523" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_C4027D99DAC87C9B68ECE3A8740FB523" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetImpairment_11E560D315DDFBE8E796E3A8740F13AD_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetImpairment_11E560D315DDFBE8E796E3A8740F13AD" 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_11E560D315DDFBE8E796E3A8740F13AD_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetImpairment_11E560D315DDFBE8E796E3A8740F13AD" 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_11E560D315DDFBE8E796E3A8740F13AD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetImpairment_11E560D315DDFBE8E796E3A8740F13AD" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetImpairment_11E560D315DDFBE8E796E3A8740F13AD" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" 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_DE94A5834407ECC875F2E3A87410A2DF_label_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" 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_DE94A5834407ECC875F2E3A87410A2DF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:to="lab_us-gaap_AssetsFairValueDisclosureAbstract_DE94A5834407ECC875F2E3A87410A2DF" xlink:type="arc" />
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_C54B3A83CD0321F97E8CE3A87410A5F1_terseLabel_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_C54B3A83CD0321F97E8CE3A87410A5F1" 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_C54B3A83CD0321F97E8CE3A87410A5F1_label_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_C54B3A83CD0321F97E8CE3A87410A5F1" 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_C54B3A83CD0321F97E8CE3A87410A5F1_documentation_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_C54B3A83CD0321F97E8CE3A87410A5F1" 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-20181231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_C54B3A83CD0321F97E8CE3A87410A5F1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_C54B3A83CD0321F97E8CE3A87410A5F1" xlink:to="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_C54B3A83CD0321F97E8CE3A87410A5F1" xlink:type="arc" />
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_DC32F32A85AC6AF79308E3A8741089D5_terseLabel_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure_DC32F32A85AC6AF79308E3A8741089D5" 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_DC32F32A85AC6AF79308E3A8741089D5_label_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure_DC32F32A85AC6AF79308E3A8741089D5" 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_DC32F32A85AC6AF79308E3A8741089D5_documentation_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure_DC32F32A85AC6AF79308E3A8741089D5" 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-20181231.xsd#cgnx_CorporateBondsFairValueDisclosure" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_DC32F32A85AC6AF79308E3A8741089D5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CorporateBondsFairValueDisclosure_DC32F32A85AC6AF79308E3A8741089D5" xlink:to="lab_cgnx_CorporateBondsFairValueDisclosure_DC32F32A85AC6AF79308E3A8741089D5" xlink:type="arc" />
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_D305213D416B08E09CC3E3A87410617D_terseLabel_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure_D305213D416B08E09CC3E3A87410617D" 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_D305213D416B08E09CC3E3A87410617D_label_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure_D305213D416B08E09CC3E3A87410617D" 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_D305213D416B08E09CC3E3A87410617D_documentation_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure_D305213D416B08E09CC3E3A87410617D" 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-20181231.xsd#cgnx_TreasuryBillsFairValueDisclosure" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_D305213D416B08E09CC3E3A87410617D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TreasuryBillsFairValueDisclosure_D305213D416B08E09CC3E3A87410617D" xlink:to="lab_cgnx_TreasuryBillsFairValueDisclosure_D305213D416B08E09CC3E3A87410617D" xlink:type="arc" />
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_572B4D50CD903A16AAEAE3A874104AA9_verboseLabel_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_572B4D50CD903A16AAEAE3A874104AA9" 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_572B4D50CD903A16AAEAE3A874104AA9_label_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_572B4D50CD903A16AAEAE3A874104AA9" 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_572B4D50CD903A16AAEAE3A874104AA9_documentation_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_572B4D50CD903A16AAEAE3A874104AA9" 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-20181231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_572B4D50CD903A16AAEAE3A874104AA9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_572B4D50CD903A16AAEAE3A874104AA9" xlink:to="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_572B4D50CD903A16AAEAE3A874104AA9" xlink:type="arc" />
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_33E041BD8395A37B4EA2E3A874108C6D_terseLabel_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure_33E041BD8395A37B4EA2E3A874108C6D" 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_33E041BD8395A37B4EA2E3A874108C6D_label_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure_33E041BD8395A37B4EA2E3A874108C6D" 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_33E041BD8395A37B4EA2E3A874108C6D_documentation_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure_33E041BD8395A37B4EA2E3A874108C6D" 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-20181231.xsd#cgnx_SovereignBondsFairValueDisclosure" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_33E041BD8395A37B4EA2E3A874108C6D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SovereignBondsFairValueDisclosure_33E041BD8395A37B4EA2E3A874108C6D" xlink:to="lab_cgnx_SovereignBondsFairValueDisclosure_33E041BD8395A37B4EA2E3A874108C6D" xlink:type="arc" />
    <link:label id="lab_cgnx_AgencyBondsFairValueDisclosure_C8C459B6B4415B22FAF2E3A8741104D7_terseLabel_en-US" xlink:label="lab_cgnx_AgencyBondsFairValueDisclosure_C8C459B6B4415B22FAF2E3A8741104D7" 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_C8C459B6B4415B22FAF2E3A8741104D7_label_en-US" xlink:label="lab_cgnx_AgencyBondsFairValueDisclosure_C8C459B6B4415B22FAF2E3A8741104D7" 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_C8C459B6B4415B22FAF2E3A8741104D7_documentation_en-US" xlink:label="lab_cgnx_AgencyBondsFairValueDisclosure_C8C459B6B4415B22FAF2E3A8741104D7" 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-20181231.xsd#cgnx_AgencyBondsFairValueDisclosure" xlink:label="loc_cgnx_AgencyBondsFairValueDisclosure_C8C459B6B4415B22FAF2E3A8741104D7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AgencyBondsFairValueDisclosure_C8C459B6B4415B22FAF2E3A8741104D7" xlink:to="lab_cgnx_AgencyBondsFairValueDisclosure_C8C459B6B4415B22FAF2E3A8741104D7" xlink:type="arc" />
    <link:label id="lab_cgnx_MunicipalBondsFairValueDisclosure_BA8F3146DD4F146859ECE3A874114C48_terseLabel_en-US" xlink:label="lab_cgnx_MunicipalBondsFairValueDisclosure_BA8F3146DD4F146859ECE3A874114C48" 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_BA8F3146DD4F146859ECE3A874114C48_label_en-US" xlink:label="lab_cgnx_MunicipalBondsFairValueDisclosure_BA8F3146DD4F146859ECE3A874114C48" 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_BA8F3146DD4F146859ECE3A874114C48_documentation_en-US" xlink:label="lab_cgnx_MunicipalBondsFairValueDisclosure_BA8F3146DD4F146859ECE3A874114C48" 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-20181231.xsd#cgnx_MunicipalBondsFairValueDisclosure" xlink:label="loc_cgnx_MunicipalBondsFairValueDisclosure_BA8F3146DD4F146859ECE3A874114C48" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MunicipalBondsFairValueDisclosure_BA8F3146DD4F146859ECE3A874114C48" xlink:to="lab_cgnx_MunicipalBondsFairValueDisclosure_BA8F3146DD4F146859ECE3A874114C48" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_BC26EF06AD35FCF4441FE3A874115F77_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_BC26EF06AD35FCF4441FE3A874115F77" 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_BC26EF06AD35FCF4441FE3A874115F77_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_BC26EF06AD35FCF4441FE3A874115F77" 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_BC26EF06AD35FCF4441FE3A874115F77" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_BC26EF06AD35FCF4441FE3A874115F77" xlink:to="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_BC26EF06AD35FCF4441FE3A874115F77" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_065F6F34DD2A5CA99136E3A874111207_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_065F6F34DD2A5CA99136E3A874111207" 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_065F6F34DD2A5CA99136E3A874111207_label_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_065F6F34DD2A5CA99136E3A874111207" 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_065F6F34DD2A5CA99136E3A874111207" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_065F6F34DD2A5CA99136E3A874111207" xlink:to="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_065F6F34DD2A5CA99136E3A874111207" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_86C17ECCF4AD1AC388F2E3A874117D55_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_86C17ECCF4AD1AC388F2E3A874117D55" 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_86C17ECCF4AD1AC388F2E3A874117D55_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_86C17ECCF4AD1AC388F2E3A874117D55" 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_86C17ECCF4AD1AC388F2E3A874117D55" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_86C17ECCF4AD1AC388F2E3A874117D55" xlink:to="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_86C17ECCF4AD1AC388F2E3A874117D55" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_F15172183960A71EA576E3A87411643F_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_F15172183960A71EA576E3A87411643F" 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_F15172183960A71EA576E3A87411643F_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_F15172183960A71EA576E3A87411643F" 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_F15172183960A71EA576E3A87411643F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_F15172183960A71EA576E3A87411643F" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_F15172183960A71EA576E3A87411643F" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_4F9E374DAD14171BF9E9E3A874117285_terseLabel_en-US" xlink:label="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_4F9E374DAD14171BF9E9E3A874117285" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other than Temporary Impairment Losses, Investments, Portion Recognized in Earnings, Net</link:label>
    <link:label id="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_4F9E374DAD14171BF9E9E3A874117285_label_en-US" xlink:label="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_4F9E374DAD14171BF9E9E3A874117285" 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_4F9E374DAD14171BF9E9E3A874117285" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_4F9E374DAD14171BF9E9E3A874117285" xlink:to="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_4F9E374DAD14171BF9E9E3A874117285" xlink:type="arc" />
    <link:label id="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_A379D15D88F63F2D4F81E3A87412819B_terseLabel_en-US" xlink:label="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_A379D15D88F63F2D4F81E3A87412819B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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_A379D15D88F63F2D4F81E3A87412819B_label_en-US" xlink:label="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_A379D15D88F63F2D4F81E3A87412819B" 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_A379D15D88F63F2D4F81E3A87412819B_documentation_en-US" xlink:label="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_A379D15D88F63F2D4F81E3A87412819B" 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-20181231.xsd#cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" xlink:label="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_A379D15D88F63F2D4F81E3A87412819B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_A379D15D88F63F2D4F81E3A87412819B" xlink:to="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_A379D15D88F63F2D4F81E3A87412819B" xlink:type="arc" />
    <link:label id="lab_us-gaap_QuarterlyFinancialInformationTextBlock_121954B7B53D94BBAB35E773040235BB_terseLabel_en-US" xlink:label="lab_us-gaap_QuarterlyFinancialInformationTextBlock_121954B7B53D94BBAB35E773040235BB" 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_121954B7B53D94BBAB35E773040235BB_label_en-US" xlink:label="lab_us-gaap_QuarterlyFinancialInformationTextBlock_121954B7B53D94BBAB35E773040235BB" 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_121954B7B53D94BBAB35E773040235BB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_QuarterlyFinancialInformationTextBlock_121954B7B53D94BBAB35E773040235BB" xlink:to="lab_us-gaap_QuarterlyFinancialInformationTextBlock_121954B7B53D94BBAB35E773040235BB" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_192F1A84D54199E8B1DDE85BA709B2DC_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_192F1A84D54199E8B1DDE85BA709B2DC" 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_192F1A84D54199E8B1DDE85BA709B2DC_label_en-US" xlink:label="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_192F1A84D54199E8B1DDE85BA709B2DC" 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_192F1A84D54199E8B1DDE85BA709B2DC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_192F1A84D54199E8B1DDE85BA709B2DC" xlink:to="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_192F1A84D54199E8B1DDE85BA709B2DC" xlink:type="arc" />
    <link:label id="lab_srt_RestatementAxis_3D8BE5694467D2227902E85BA70914D5_terseLabel_en-US" xlink:label="lab_srt_RestatementAxis_3D8BE5694467D2227902E85BA70914D5" 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_3D8BE5694467D2227902E85BA70914D5_label_en-US" xlink:label="lab_srt_RestatementAxis_3D8BE5694467D2227902E85BA70914D5" 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_3D8BE5694467D2227902E85BA70914D5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementAxis_3D8BE5694467D2227902E85BA70914D5" xlink:to="lab_srt_RestatementAxis_3D8BE5694467D2227902E85BA70914D5" xlink:type="arc" />
    <link:label id="lab_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367_terseLabel_en-US" xlink:label="lab_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367" 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_A356A2AC78E07B1DCA52E85BA709F367_label_en-US" xlink:label="lab_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367" 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_A356A2AC78E07B1DCA52E85BA709F367" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367" xlink:to="lab_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367" xlink:type="arc" />
    <link:label id="lab_srt_ScenarioPreviouslyReportedMember_CE3DB96587E5ECA59101E85BA709BED6_verboseLabel_en-US" xlink:label="lab_srt_ScenarioPreviouslyReportedMember_CE3DB96587E5ECA59101E85BA709BED6" 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_CE3DB96587E5ECA59101E85BA709BED6_label_en-US" xlink:label="lab_srt_ScenarioPreviouslyReportedMember_CE3DB96587E5ECA59101E85BA709BED6" 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_CE3DB96587E5ECA59101E85BA709BED6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScenarioPreviouslyReportedMember_CE3DB96587E5ECA59101E85BA709BED6" xlink:to="lab_srt_ScenarioPreviouslyReportedMember_CE3DB96587E5ECA59101E85BA709BED6" xlink:type="arc" />
    <link:label id="lab_srt_RestatementAdjustmentMember_E759B65B2ECFBCF0F5E7E85BA70920EA_verboseLabel_en-US" xlink:label="lab_srt_RestatementAdjustmentMember_E759B65B2ECFBCF0F5E7E85BA70920EA" 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_E759B65B2ECFBCF0F5E7E85BA70920EA_label_en-US" xlink:label="lab_srt_RestatementAdjustmentMember_E759B65B2ECFBCF0F5E7E85BA70920EA" 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_E759B65B2ECFBCF0F5E7E85BA70920EA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementAdjustmentMember_E759B65B2ECFBCF0F5E7E85BA70920EA" xlink:to="lab_srt_RestatementAdjustmentMember_E759B65B2ECFBCF0F5E7E85BA70920EA" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A96413A61096EE09576EE85BA70905D0_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A96413A61096EE09576EE85BA70905D0" 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_A96413A61096EE09576EE85BA70905D0_label_en-US" xlink:label="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A96413A61096EE09576EE85BA70905D0" 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_A96413A61096EE09576EE85BA70905D0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A96413A61096EE09576EE85BA70905D0" xlink:to="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A96413A61096EE09576EE85BA70905D0" xlink:type="arc" />
    <link:label id="lab_us-gaap_TypeOfAdoptionMember_CB67C60127E3259A319FE85BA7091177_terseLabel_en-US" xlink:label="lab_us-gaap_TypeOfAdoptionMember_CB67C60127E3259A319FE85BA7091177" 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_CB67C60127E3259A319FE85BA7091177_label_en-US" xlink:label="lab_us-gaap_TypeOfAdoptionMember_CB67C60127E3259A319FE85BA7091177" 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_CB67C60127E3259A319FE85BA7091177" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TypeOfAdoptionMember_CB67C60127E3259A319FE85BA7091177" xlink:to="lab_us-gaap_TypeOfAdoptionMember_CB67C60127E3259A319FE85BA7091177" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2014-09 [Member]</link:label>
    <link:label id="lab_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5_label_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2014-09 [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5" xlink:to="lab_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" 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_A66335693F5E3AC8E813E85BA711D701_label_en-US" xlink:label="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" 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_A66335693F5E3AC8E813E85BA711D701" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:to="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_469906173A5F479B5A97E85BA711A779_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_469906173A5F479B5A97E85BA711A779" 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_469906173A5F479B5A97E85BA711A779" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_469906173A5F479B5A97E85BA711A779" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_469906173A5F479B5A97E85BA711A779" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_49F398CED6360CD7B8EFE85BA711722E_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit_49F398CED6360CD7B8EFE85BA711722E" 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_49F398CED6360CD7B8EFE85BA711722E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_49F398CED6360CD7B8EFE85BA711722E" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit_49F398CED6360CD7B8EFE85BA711722E" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866" 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_0F80988200B05E394D28E85BA711E866_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866" 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_0F80988200B05E394D28E85BA711E866" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866" xlink:to="lab_us-gaap_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasic_BBB25B4B57D596B548B5E85BA713729B_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic_BBB25B4B57D596B548B5E85BA713729B" 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_BBB25B4B57D596B548B5E85BA713729B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic_BBB25B4B57D596B548B5E85BA713729B" xlink:to="lab_us-gaap_EarningsPerShareBasic_BBB25B4B57D596B548B5E85BA713729B" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_E295D0D0C7D0B820B3D5E85BA7139585_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted_E295D0D0C7D0B820B3D5E85BA7139585" 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_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_E295D0D0C7D0B820B3D5E85BA7139585" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted_E295D0D0C7D0B820B3D5E85BA7139585" xlink:to="lab_us-gaap_EarningsPerShareDiluted_E295D0D0C7D0B820B3D5E85BA7139585" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_7EEB564783EE75CE6C31E3837EAEAA92_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_7EEB564783EE75CE6C31E3837EAEAA92" 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_7EEB564783EE75CE6C31E3837EAEAA92" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_7EEB564783EE75CE6C31E3837EAEAA92" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_7EEB564783EE75CE6C31E3837EAEAA92" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeTable_801171ED76C8F9D20D60E3837EAE6EBA_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeTable_801171ED76C8F9D20D60E3837EAE6EBA" 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_801171ED76C8F9D20D60E3837EAE6EBA_label_en-US" xlink:label="lab_us-gaap_DerivativeTable_801171ED76C8F9D20D60E3837EAE6EBA" 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_801171ED76C8F9D20D60E3837EAE6EBA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeTable_801171ED76C8F9D20D60E3837EAE6EBA" xlink:to="lab_us-gaap_DerivativeTable_801171ED76C8F9D20D60E3837EAE6EBA" xlink:type="arc" />
    <link:label id="lab_us-gaap_HedgingDesignationAxis_ACF01A5163E8CC592EF4E3837EAFACF4_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationAxis_ACF01A5163E8CC592EF4E3837EAFACF4" 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_ACF01A5163E8CC592EF4E3837EAFACF4_label_en-US" xlink:label="lab_us-gaap_HedgingDesignationAxis_ACF01A5163E8CC592EF4E3837EAFACF4" 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_ACF01A5163E8CC592EF4E3837EAFACF4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_HedgingDesignationAxis_ACF01A5163E8CC592EF4E3837EAFACF4" xlink:to="lab_us-gaap_HedgingDesignationAxis_ACF01A5163E8CC592EF4E3837EAFACF4" xlink:type="arc" />
    <link:label id="lab_us-gaap_HedgingDesignationDomain_475CF75AC74B97D299C5E3837EAFCFB7_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationDomain_475CF75AC74B97D299C5E3837EAFCFB7" 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_475CF75AC74B97D299C5E3837EAFCFB7_label_en-US" xlink:label="lab_us-gaap_HedgingDesignationDomain_475CF75AC74B97D299C5E3837EAFCFB7" 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_475CF75AC74B97D299C5E3837EAFCFB7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_HedgingDesignationDomain_475CF75AC74B97D299C5E3837EAFCFB7" xlink:to="lab_us-gaap_HedgingDesignationDomain_475CF75AC74B97D299C5E3837EAFCFB7" xlink:type="arc" />
    <link:label id="lab_us-gaap_NondesignatedMember_FDF4CAD18900BF36DA7FE3837EB08563_terseLabel_en-US" xlink:label="lab_us-gaap_NondesignatedMember_FDF4CAD18900BF36DA7FE3837EB08563" 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_FDF4CAD18900BF36DA7FE3837EB08563_label_en-US" xlink:label="lab_us-gaap_NondesignatedMember_FDF4CAD18900BF36DA7FE3837EB08563" 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_FDF4CAD18900BF36DA7FE3837EB08563" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NondesignatedMember_FDF4CAD18900BF36DA7FE3837EB08563" xlink:to="lab_us-gaap_NondesignatedMember_FDF4CAD18900BF36DA7FE3837EB08563" xlink:type="arc" />
    <link:label id="lab_srt_CurrencyAxis_A9DA62630432CEEF6E40E3837EB0F844_terseLabel_en-US" xlink:label="lab_srt_CurrencyAxis_A9DA62630432CEEF6E40E3837EB0F844" 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_A9DA62630432CEEF6E40E3837EB0F844_label_en-US" xlink:label="lab_srt_CurrencyAxis_A9DA62630432CEEF6E40E3837EB0F844" 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_A9DA62630432CEEF6E40E3837EB0F844" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_CurrencyAxis_A9DA62630432CEEF6E40E3837EB0F844" xlink:to="lab_srt_CurrencyAxis_A9DA62630432CEEF6E40E3837EB0F844" xlink:type="arc" />
    <link:label id="lab_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615_terseLabel_en-US" xlink:label="lab_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" 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_223CEB91D9C2AB46295BE3837EB05615_label_en-US" xlink:label="lab_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:to="lab_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" xlink:type="arc" />
    <link:label id="lab_currency_EUR_6825D1E21FB032D841ACE3837EB22C02_terseLabel_en-US" xlink:label="lab_currency_EUR_6825D1E21FB032D841ACE3837EB22C02" 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_6825D1E21FB032D841ACE3837EB22C02_label_en-US" xlink:label="lab_currency_EUR_6825D1E21FB032D841ACE3837EB22C02" 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_6825D1E21FB032D841ACE3837EB22C02" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_EUR_6825D1E21FB032D841ACE3837EB22C02" xlink:to="lab_currency_EUR_6825D1E21FB032D841ACE3837EB22C02" xlink:type="arc" />
    <link:label id="lab_currency_JPY_0A921F816429DC65DDECE3837EB0CF5E_terseLabel_en-US" xlink:label="lab_currency_JPY_0A921F816429DC65DDECE3837EB0CF5E" 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_0A921F816429DC65DDECE3837EB0CF5E_label_en-US" xlink:label="lab_currency_JPY_0A921F816429DC65DDECE3837EB0CF5E" 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_0A921F816429DC65DDECE3837EB0CF5E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_JPY_0A921F816429DC65DDECE3837EB0CF5E" xlink:to="lab_currency_JPY_0A921F816429DC65DDECE3837EB0CF5E" xlink:type="arc" />
    <link:label id="lab_currency_GBP_6813A2CDAD8EBEEC8B1CE3837EB12304_terseLabel_en-US" xlink:label="lab_currency_GBP_6813A2CDAD8EBEEC8B1CE3837EB12304" 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_6813A2CDAD8EBEEC8B1CE3837EB12304_label_en-US" xlink:label="lab_currency_GBP_6813A2CDAD8EBEEC8B1CE3837EB12304" 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_6813A2CDAD8EBEEC8B1CE3837EB12304" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_GBP_6813A2CDAD8EBEEC8B1CE3837EB12304" xlink:to="lab_currency_GBP_6813A2CDAD8EBEEC8B1CE3837EB12304" xlink:type="arc" />
    <link:label id="lab_currency_KRW_1E768CECBE67C949F7F0E3837EB11DA7_terseLabel_en-US" xlink:label="lab_currency_KRW_1E768CECBE67C949F7F0E3837EB11DA7" 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_1E768CECBE67C949F7F0E3837EB11DA7_label_en-US" xlink:label="lab_currency_KRW_1E768CECBE67C949F7F0E3837EB11DA7" 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_1E768CECBE67C949F7F0E3837EB11DA7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_KRW_1E768CECBE67C949F7F0E3837EB11DA7" xlink:to="lab_currency_KRW_1E768CECBE67C949F7F0E3837EB11DA7" xlink:type="arc" />
    <link:label id="lab_currency_HUF_C9A649965625BEE19180E3837EB1A68D_terseLabel_en-US" xlink:label="lab_currency_HUF_C9A649965625BEE19180E3837EB1A68D" 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_C9A649965625BEE19180E3837EB1A68D_label_en-US" xlink:label="lab_currency_HUF_C9A649965625BEE19180E3837EB1A68D" 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_C9A649965625BEE19180E3837EB1A68D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_HUF_C9A649965625BEE19180E3837EB1A68D" xlink:to="lab_currency_HUF_C9A649965625BEE19180E3837EB1A68D" xlink:type="arc" />
    <link:label id="lab_currency_TWD_94BF3FA900A31B7FAD76E3837EB7C94C_terseLabel_en-US" xlink:label="lab_currency_TWD_94BF3FA900A31B7FAD76E3837EB7C94C" 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_94BF3FA900A31B7FAD76E3837EB7C94C_label_en-US" xlink:label="lab_currency_TWD_94BF3FA900A31B7FAD76E3837EB7C94C" 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_94BF3FA900A31B7FAD76E3837EB7C94C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_TWD_94BF3FA900A31B7FAD76E3837EB7C94C" xlink:to="lab_currency_TWD_94BF3FA900A31B7FAD76E3837EB7C94C" xlink:type="arc" />
    <link:label id="lab_currency_CAD_762052C1B580F7D0B902E3837EB7FB81_terseLabel_en-US" xlink:label="lab_currency_CAD_762052C1B580F7D0B902E3837EB7FB81" 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_762052C1B580F7D0B902E3837EB7FB81_label_en-US" xlink:label="lab_currency_CAD_762052C1B580F7D0B902E3837EB7FB81" 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_762052C1B580F7D0B902E3837EB7FB81" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_CAD_762052C1B580F7D0B902E3837EB7FB81" xlink:to="lab_currency_CAD_762052C1B580F7D0B902E3837EB7FB81" xlink:type="arc" />
    <link:label id="lab_currency_SGD_3A7D73C2F29C8C6F03E5E3837EB1A76C_terseLabel_en-US" xlink:label="lab_currency_SGD_3A7D73C2F29C8C6F03E5E3837EB1A76C" 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_3A7D73C2F29C8C6F03E5E3837EB1A76C_label_en-US" xlink:label="lab_currency_SGD_3A7D73C2F29C8C6F03E5E3837EB1A76C" 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_3A7D73C2F29C8C6F03E5E3837EB1A76C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_SGD_3A7D73C2F29C8C6F03E5E3837EB1A76C" xlink:to="lab_currency_SGD_3A7D73C2F29C8C6F03E5E3837EB1A76C" xlink:type="arc" />
    <link:label id="lab_currency_CHF_1594E3AB5AD77241969AE3837EB78C51_terseLabel_en-US" xlink:label="lab_currency_CHF_1594E3AB5AD77241969AE3837EB78C51" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Swiss Franc [Member]</link:label>
    <link:label id="lab_currency_CHF_1594E3AB5AD77241969AE3837EB78C51_label_en-US" xlink:label="lab_currency_CHF_1594E3AB5AD77241969AE3837EB78C51" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Switzerland, Francs</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_CHF" xlink:label="loc_currency_CHF_1594E3AB5AD77241969AE3837EB78C51" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_CHF_1594E3AB5AD77241969AE3837EB78C51" xlink:to="lab_currency_CHF_1594E3AB5AD77241969AE3837EB78C51" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeLineItems_E73E2729B84D6B84DA9AE3837EB8C618_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLineItems_E73E2729B84D6B84DA9AE3837EB8C618" 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_E73E2729B84D6B84DA9AE3837EB8C618_label_en-US" xlink:label="lab_us-gaap_DerivativeLineItems_E73E2729B84D6B84DA9AE3837EB8C618" 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_E73E2729B84D6B84DA9AE3837EB8C618" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLineItems_E73E2729B84D6B84DA9AE3837EB8C618" xlink:to="lab_us-gaap_DerivativeLineItems_E73E2729B84D6B84DA9AE3837EB8C618" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeAssetNotionalAmount_55D5B9197506301EA3E5E3837EB8DA76_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetNotionalAmount_55D5B9197506301EA3E5E3837EB8DA76" 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_55D5B9197506301EA3E5E3837EB8DA76_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetNotionalAmount_55D5B9197506301EA3E5E3837EB8DA76" 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_55D5B9197506301EA3E5E3837EB8DA76" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetNotionalAmount_55D5B9197506301EA3E5E3837EB8DA76" xlink:to="lab_us-gaap_DerivativeAssetNotionalAmount_55D5B9197506301EA3E5E3837EB8DA76" xlink:type="arc" />
    <link:label id="lab_us-gaap_EquityAbstract_7AB66A2E87BB11550781E3837E035A1A_label_en-US" xlink:label="lab_us-gaap_EquityAbstract_7AB66A2E87BB11550781E3837E035A1A" 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_7AB66A2E87BB11550781E3837E035A1A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityAbstract_7AB66A2E87BB11550781E3837E035A1A" xlink:to="lab_us-gaap_EquityAbstract_7AB66A2E87BB11550781E3837E035A1A" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_9AB1C444DE0079CA4385E3837E037462_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable_9AB1C444DE0079CA4385E3837E037462" 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_9AB1C444DE0079CA4385E3837E037462_label_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable_9AB1C444DE0079CA4385E3837E037462" 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_9AB1C444DE0079CA4385E3837E037462" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_9AB1C444DE0079CA4385E3837E037462" xlink:to="lab_us-gaap_ScheduleOfStockByClassTable_9AB1C444DE0079CA4385E3837E037462" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementClassOfStockAxis_CB63821325FC5CA08915E3837E03FD6B_terseLabel_en-US" xlink:label="lab_us-gaap_StatementClassOfStockAxis_CB63821325FC5CA08915E3837E03FD6B" 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_CB63821325FC5CA08915E3837E03FD6B_label_en-US" xlink:label="lab_us-gaap_StatementClassOfStockAxis_CB63821325FC5CA08915E3837E03FD6B" 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_CB63821325FC5CA08915E3837E03FD6B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementClassOfStockAxis_CB63821325FC5CA08915E3837E03FD6B" xlink:to="lab_us-gaap_StatementClassOfStockAxis_CB63821325FC5CA08915E3837E03FD6B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ClassOfStockDomain_0FDE6F73994E1FD663DDE3837E03E382_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockDomain_0FDE6F73994E1FD663DDE3837E03E382" 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_0FDE6F73994E1FD663DDE3837E03E382_label_en-US" xlink:label="lab_us-gaap_ClassOfStockDomain_0FDE6F73994E1FD663DDE3837E03E382" 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_0FDE6F73994E1FD663DDE3837E03E382" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockDomain_0FDE6F73994E1FD663DDE3837E03E382" xlink:to="lab_us-gaap_ClassOfStockDomain_0FDE6F73994E1FD663DDE3837E03E382" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockMember_A0C3082D809EA76C28D4E3837E04D37B_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockMember_A0C3082D809EA76C28D4E3837E04D37B" 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_A0C3082D809EA76C28D4E3837E04D37B_label_en-US" xlink:label="lab_us-gaap_CommonStockMember_A0C3082D809EA76C28D4E3837E04D37B" 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_A0C3082D809EA76C28D4E3837E04D37B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockMember_A0C3082D809EA76C28D4E3837E04D37B" xlink:to="lab_us-gaap_CommonStockMember_A0C3082D809EA76C28D4E3837E04D37B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareRepurchaseProgramAxis_19BAD02892E246E44CE0E3837E04F5C3_terseLabel_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramAxis_19BAD02892E246E44CE0E3837E04F5C3" 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_19BAD02892E246E44CE0E3837E04F5C3_label_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramAxis_19BAD02892E246E44CE0E3837E04F5C3" 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_19BAD02892E246E44CE0E3837E04F5C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_19BAD02892E246E44CE0E3837E04F5C3" xlink:to="lab_us-gaap_ShareRepurchaseProgramAxis_19BAD02892E246E44CE0E3837E04F5C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263_terseLabel_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263" 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_C5B618A9C322C3C8C2BDE3837E04B263_label_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263" 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_C5B618A9C322C3C8C2BDE3837E04B263" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263" xlink:to="lab_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263" xlink:type="arc" />
    <link:label id="lab_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" 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_59DD26E25259708CDBBFE3837E0415A2_label_en-US" xlink:label="lab_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" 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_59DD26E25259708CDBBFE3837E0415A2_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" 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-20181231.xsd#cgnx_RepurchaseProgram2014Member" xlink:label="loc_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" xlink:to="lab_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" xlink:type="arc" />
    <link:label id="lab_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" 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_B30298AFC53A0A99779DE3837E051B67_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" 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_B30298AFC53A0A99779DE3837E051B67_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" 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-20181231.xsd#cgnx_RepurchaseProgramTwentyFifteenMember" xlink:label="loc_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" xlink:to="lab_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" xlink:type="arc" />
    <link:label id="lab_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" 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_84E69E2D9CCAA820B566E3837E0562E4_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" 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_84E69E2D9CCAA820B566E3837E0562E4_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" 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-20181231.xsd#cgnx_RepurchaseProgramNovember2015Member" xlink:label="loc_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" xlink:to="lab_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" xlink:type="arc" />
    <link:label id="lab_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" 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_BF14806C97F3D2201A62E3837E059D42_label_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" 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_BF14806C97F3D2201A62E3837E059D42" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:to="lab_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" xlink:type="arc" />
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_F1EF17F0D0292A87F898E3837E053B0A_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized_F1EF17F0D0292A87F898E3837E053B0A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Authorized shares</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_F1EF17F0D0292A87F898E3837E053B0A_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized_F1EF17F0D0292A87F898E3837E053B0A" 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_F1EF17F0D0292A87F898E3837E053B0A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesAuthorized_F1EF17F0D0292A87F898E3837E053B0A" xlink:to="lab_us-gaap_PreferredStockSharesAuthorized_F1EF17F0D0292A87F898E3837E053B0A" xlink:type="arc" />
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_F7E7A029480EAC8DD6B0E3837E06CAB6_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare_F7E7A029480EAC8DD6B0E3837E06CAB6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock par value (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_F7E7A029480EAC8DD6B0E3837E06CAB6_label_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare_F7E7A029480EAC8DD6B0E3837E06CAB6" 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_F7E7A029480EAC8DD6B0E3837E06CAB6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockParOrStatedValuePerShare_F7E7A029480EAC8DD6B0E3837E06CAB6" xlink:to="lab_us-gaap_PreferredStockParOrStatedValuePerShare_F7E7A029480EAC8DD6B0E3837E06CAB6" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_9C20E584C5CD8DE4F233E3837E06C0EC_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized_9C20E584C5CD8DE4F233E3837E06C0EC" 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_9C20E584C5CD8DE4F233E3837E06C0EC_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized_9C20E584C5CD8DE4F233E3837E06C0EC" 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_9C20E584C5CD8DE4F233E3837E06C0EC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesAuthorized_9C20E584C5CD8DE4F233E3837E06C0EC" xlink:to="lab_us-gaap_CommonStockSharesAuthorized_9C20E584C5CD8DE4F233E3837E06C0EC" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_E7F56B17BAEB99D995A6E3837E065351_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare_E7F56B17BAEB99D995A6E3837E065351" 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_E7F56B17BAEB99D995A6E3837E065351_label_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare_E7F56B17BAEB99D995A6E3837E065351" 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_E7F56B17BAEB99D995A6E3837E065351" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockParOrStatedValuePerShare_E7F56B17BAEB99D995A6E3837E065351" xlink:to="lab_us-gaap_CommonStockParOrStatedValuePerShare_E7F56B17BAEB99D995A6E3837E065351" xlink:type="arc" />
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528_terseLabel_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" 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_3DE0711CB83E80C60FEFE3837E07D528_label_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" 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_3DE0711CB83E80C60FEFE3837E07D528_documentation_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" 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-20181231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" xlink:to="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_B91C8F912FF3FE249AA5E3837E078FE3_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_B91C8F912FF3FE249AA5E3837E078FE3" 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_B91C8F912FF3FE249AA5E3837E078FE3_label_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_B91C8F912FF3FE249AA5E3837E078FE3" 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_B91C8F912FF3FE249AA5E3837E078FE3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_B91C8F912FF3FE249AA5E3837E078FE3" xlink:to="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_B91C8F912FF3FE249AA5E3837E078FE3" xlink:type="arc" />
    <link:label id="lab_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9_terseLabel_en-US" xlink:label="lab_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" 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_D3DC09E66249752DAE18E3837E07D4D9_label_en-US" xlink:label="lab_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" 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_D3DC09E66249752DAE18E3837E07D4D9_documentation_en-US" xlink:label="lab_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" 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-20181231.xsd#cgnx_Totalsharesrepurchased" xlink:label="loc_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" xlink:to="lab_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" xlink:type="arc" />
    <link:label id="lab_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF_terseLabel_en-US" xlink:label="lab_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" 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_9098084D91DE1C7362DEE3837E0723EF_label_en-US" xlink:label="lab_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" 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_9098084D91DE1C7362DEE3837E0723EF_documentation_en-US" xlink:label="lab_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" 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-20181231.xsd#cgnx_Repurchasedsharestotalcost" xlink:label="loc_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" xlink:to="lab_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_ADCF665EFCB528EAA5BCE3837E07168B_verboseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares_ADCF665EFCB528EAA5BCE3837E07168B" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock, shares</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_ADCF665EFCB528EAA5BCE3837E07168B_label_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares_ADCF665EFCB528EAA5BCE3837E07168B" 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_ADCF665EFCB528EAA5BCE3837E07168B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodShares_ADCF665EFCB528EAA5BCE3837E07168B" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodShares_ADCF665EFCB528EAA5BCE3837E07168B" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_295827A6D54042601D82E3837E07430F_verboseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue_295827A6D54042601D82E3837E07430F" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_295827A6D54042601D82E3837E07430F_label_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue_295827A6D54042601D82E3837E07430F" 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_295827A6D54042601D82E3837E07430F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodValue_295827A6D54042601D82E3837E07430F" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodValue_295827A6D54042601D82E3837E07430F" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareDeclared_CC4C8EAFAAE1B7B5ED25E3837E08DE4F_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareDeclared_CC4C8EAFAAE1B7B5ED25E3837E08DE4F" 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_CC4C8EAFAAE1B7B5ED25E3837E08DE4F_label_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareDeclared_CC4C8EAFAAE1B7B5ED25E3837E08DE4F" 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_CC4C8EAFAAE1B7B5ED25E3837E08DE4F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockDividendsPerShareDeclared_CC4C8EAFAAE1B7B5ED25E3837E08DE4F" xlink:to="lab_us-gaap_CommonStockDividendsPerShareDeclared_CC4C8EAFAAE1B7B5ED25E3837E08DE4F" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsOfDividends_FBC2CA88330EED95B24CE3837E08765C_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividends_FBC2CA88330EED95B24CE3837E08765C" 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_FBC2CA88330EED95B24CE3837E08765C_label_en-US" xlink:label="lab_us-gaap_PaymentsOfDividends_FBC2CA88330EED95B24CE3837E08765C" 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_FBC2CA88330EED95B24CE3837E08765C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfDividends_FBC2CA88330EED95B24CE3837E08765C" xlink:to="lab_us-gaap_PaymentsOfDividends_FBC2CA88330EED95B24CE3837E08765C" xlink:type="arc" />
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_24AEBA25EB6C52144CCAFA5C256A4EE6_label_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_24AEBA25EB6C52144CCAFA5C256A4EE6" 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_24AEBA25EB6C52144CCAFA5C256A4EE6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_24AEBA25EB6C52144CCAFA5C256A4EE6" xlink:to="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_24AEBA25EB6C52144CCAFA5C256A4EE6" xlink:type="arc" />
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_820A1A7AF74DDCA9601FFA5C256A69A5_terseLabel_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_820A1A7AF74DDCA9601FFA5C256A69A5" 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_820A1A7AF74DDCA9601FFA5C256A69A5_label_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_820A1A7AF74DDCA9601FFA5C256A69A5" 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_820A1A7AF74DDCA9601FFA5C256A69A5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_820A1A7AF74DDCA9601FFA5C256A69A5" xlink:to="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_820A1A7AF74DDCA9601FFA5C256A69A5" xlink:type="arc" />
    <link:label id="lab_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84_terseLabel_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">GVi Ventures, Inc. [Member]</link:label>
    <link:label id="lab_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84_label_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" 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_6D15812C5A05F030357BE44669406A84_documentation_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" 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-20181231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" xlink:to="lab_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5561EDF73534C4C74B6FE4466941F1EC_verboseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5561EDF73534C4C74B6FE4466941F1EC" 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_5561EDF73534C4C74B6FE4466941F1EC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5561EDF73534C4C74B6FE4466941F1EC" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5561EDF73534C4C74B6FE4466941F1EC" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_4122D8B9C0E691306DEFE44669417135_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_4122D8B9C0E691306DEFE44669417135" 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_4122D8B9C0E691306DEFE44669417135_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_4122D8B9C0E691306DEFE44669417135" 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_4122D8B9C0E691306DEFE44669417135" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_4122D8B9C0E691306DEFE44669417135" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_4122D8B9C0E691306DEFE44669417135" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_0F158D34B57F4FEB3ABEE44669419D1C_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_0F158D34B57F4FEB3ABEE44669419D1C" 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_0F158D34B57F4FEB3ABEE44669419D1C_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_0F158D34B57F4FEB3ABEE44669419D1C" 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_0F158D34B57F4FEB3ABEE44669419D1C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_0F158D34B57F4FEB3ABEE44669419D1C" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_0F158D34B57F4FEB3ABEE44669419D1C" xlink:type="arc" />
    <link:label id="lab_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E_terseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Milestone recognition period</link:label>
    <link:label id="lab_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E_label_en-US" xlink:label="lab_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Period of Recognition</link:label>
    <link:label id="lab_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Period of Recognition</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition" xlink:label="loc_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" xlink:to="lab_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_ED76C7FB2335D0D0C648E4466942A752_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_ED76C7FB2335D0D0C648E4466942A752" 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_ED76C7FB2335D0D0C648E4466942A752_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_ED76C7FB2335D0D0C648E4466942A752" 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_ED76C7FB2335D0D0C648E4466942A752" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_ED76C7FB2335D0D0C648E4466942A752" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_ED76C7FB2335D0D0C648E4466942A752" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_1E3D58B0E2FC356CE1B2E4466942D784_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_1E3D58B0E2FC356CE1B2E4466942D784" 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_1E3D58B0E2FC356CE1B2E4466942D784_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_1E3D58B0E2FC356CE1B2E4466942D784" 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_1E3D58B0E2FC356CE1B2E4466942D784" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_1E3D58B0E2FC356CE1B2E4466942D784" xlink:to="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_1E3D58B0E2FC356CE1B2E4466942D784" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanTable_B74D1CBEE07CFBA53A7C77F2319B9C76_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanTable_B74D1CBEE07CFBA53A7C77F2319B9C76" 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_B74D1CBEE07CFBA53A7C77F2319B9C76_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanTable_B74D1CBEE07CFBA53A7C77F2319B9C76" 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_B74D1CBEE07CFBA53A7C77F2319B9C76" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanTable_B74D1CBEE07CFBA53A7C77F2319B9C76" xlink:to="lab_us-gaap_DefinedContributionPlanTable_B74D1CBEE07CFBA53A7C77F2319B9C76" xlink:type="arc" />
    <link:label id="lab_us-gaap_TitleOfIndividualAxis_A7CC5C1283C8BA1569ED77F2319C219C_terseLabel_en-US" xlink:label="lab_us-gaap_TitleOfIndividualAxis_A7CC5C1283C8BA1569ED77F2319C219C" 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_A7CC5C1283C8BA1569ED77F2319C219C_label_en-US" xlink:label="lab_us-gaap_TitleOfIndividualAxis_A7CC5C1283C8BA1569ED77F2319C219C" 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_A7CC5C1283C8BA1569ED77F2319C219C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TitleOfIndividualAxis_A7CC5C1283C8BA1569ED77F2319C219C" xlink:to="lab_us-gaap_TitleOfIndividualAxis_A7CC5C1283C8BA1569ED77F2319C219C" xlink:type="arc" />
    <link:label id="lab_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0_terseLabel_en-US" xlink:label="lab_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0" 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_29A4BF292B23FD469CEC77F2319CDAB0_label_en-US" xlink:label="lab_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0" 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_29A4BF292B23FD469CEC77F2319CDAB0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0" xlink:to="lab_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0" xlink:type="arc" />
    <link:label id="lab_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D_terseLabel_en-US" xlink:label="lab_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Highly Compensated Employee</link:label>
    <link:label id="lab_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D_label_en-US" xlink:label="lab_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Highly Compensated Employee [Member]</link:label>
    <link:label id="lab_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D_documentation_en-US" xlink:label="lab_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Highly Compensated Employee [Member]</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_HighlyCompensatedEmployeeMember" xlink:label="loc_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" xlink:to="lab_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" 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_4FAAFF225E2C77944C1377F2319D2F7C_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="lab_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:type="arc" />
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562_terseLabel_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" 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_A37C19DBD203D1F7B9C977F2319D9562_label_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" 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_A37C19DBD203D1F7B9C977F2319D9562_documentation_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" 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-20181231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" xlink:to="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_E1962C5D75867D80A3E977F2319D6331_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_E1962C5D75867D80A3E977F2319D6331" 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_E1962C5D75867D80A3E977F2319D6331_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_E1962C5D75867D80A3E977F2319D6331" 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_E1962C5D75867D80A3E977F2319D6331" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_E1962C5D75867D80A3E977F2319D6331" xlink:to="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_E1962C5D75867D80A3E977F2319D6331" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_97745FD84D04D328054377F2319DFA85_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_97745FD84D04D328054377F2319DFA85" 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_97745FD84D04D328054377F2319DFA85_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_97745FD84D04D328054377F2319DFA85" 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_97745FD84D04D328054377F2319DFA85" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_97745FD84D04D328054377F2319DFA85" xlink:to="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_97745FD84D04D328054377F2319DFA85" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_E2C85D3618014E788B9377F2319D5800_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_E2C85D3618014E788B9377F2319D5800" 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_E2C85D3618014E788B9377F2319D5800_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_E2C85D3618014E788B9377F2319D5800" 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_E2C85D3618014E788B9377F2319D5800" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_E2C85D3618014E788B9377F2319D5800" xlink:to="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_E2C85D3618014E788B9377F2319D5800" xlink:type="arc" />
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" 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_70490DA59B687157109A77F2319E6960_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" 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_70490DA59B687157109A77F2319E6960_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" 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-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" xlink:type="arc" />
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" 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_95A0FF0CBBBFA5400CAB77F2319EB7FA_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" 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_95A0FF0CBBBFA5400CAB77F2319EB7FA_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" 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-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" xlink:type="arc" />
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E_totalLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" 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_818FA569B1A52B95B19777F2319E786E_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" 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_818FA569B1A52B95B19777F2319E786E_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" 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-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" xlink:type="arc" />
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" 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_DA12DA7927DE9D6EAE2877F2319E3C7D_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" 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_DA12DA7927DE9D6EAE2877F2319E3C7D_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" 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-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfFiveYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_C393B603CEDD9A031DFB77F2319E20A0_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized_C393B603CEDD9A031DFB77F2319E20A0" 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_C393B603CEDD9A031DFB77F2319E20A0_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized_C393B603CEDD9A031DFB77F2319E20A0" 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_C393B603CEDD9A031DFB77F2319E20A0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanCostRecognized_C393B603CEDD9A031DFB77F2319E20A0" xlink:to="lab_us-gaap_DefinedContributionPlanCostRecognized_C393B603CEDD9A031DFB77F2319E20A0" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_D52FCBBC952D7276EB23E38381049195_label_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract_D52FCBBC952D7276EB23E38381049195" 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_D52FCBBC952D7276EB23E38381049195" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_D52FCBBC952D7276EB23E38381049195" xlink:to="lab_us-gaap_StatementOfFinancialPositionAbstract_D52FCBBC952D7276EB23E38381049195" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_441E64C56F03A28DC5D4E38381041B40_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance_441E64C56F03A28DC5D4E38381041B40" 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_441E64C56F03A28DC5D4E38381041B40_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance_441E64C56F03A28DC5D4E38381041B40" 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_441E64C56F03A28DC5D4E38381041B40" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesBalance_441E64C56F03A28DC5D4E38381041B40" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesBalance_441E64C56F03A28DC5D4E38381041B40" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesIssued_D315AC0896B6E7163C2DE383810590CF_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued_D315AC0896B6E7163C2DE383810590CF" 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_D315AC0896B6E7163C2DE383810590CF_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued_D315AC0896B6E7163C2DE383810590CF" 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_D315AC0896B6E7163C2DE383810590CF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued_D315AC0896B6E7163C2DE383810590CF" xlink:to="lab_us-gaap_CommonStockSharesIssued_D315AC0896B6E7163C2DE383810590CF" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_9AB4479BE5B05F5774B2E3838105C670_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding_9AB4479BE5B05F5774B2E3838105C670" 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_9AB4479BE5B05F5774B2E3838105C670_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding_9AB4479BE5B05F5774B2E3838105C670" 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_9AB4479BE5B05F5774B2E3838105C670" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesOutstanding_9AB4479BE5B05F5774B2E3838105C670" xlink:to="lab_us-gaap_CommonStockSharesOutstanding_9AB4479BE5B05F5774B2E3838105C670" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_E0FFA4693147A881E968E70868311F57_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_E0FFA4693147A881E968E70868311F57" 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_E0FFA4693147A881E968E70868311F57" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_E0FFA4693147A881E968E70868311F57" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_E0FFA4693147A881E968E70868311F57" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2F1FE1A99C15F818426EE708683189E0_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2F1FE1A99C15F818426EE708683189E0" 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_2F1FE1A99C15F818426EE708683189E0_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2F1FE1A99C15F818426EE708683189E0" 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_2F1FE1A99C15F818426EE708683189E0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2F1FE1A99C15F818426EE708683189E0" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2F1FE1A99C15F818426EE708683189E0" xlink:type="arc" />
    <link:label id="lab_srt_RangeAxis_3640CAC4B1D0C4D8D92DE7086832F60F_terseLabel_en-US" xlink:label="lab_srt_RangeAxis_3640CAC4B1D0C4D8D92DE7086832F60F" 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_3640CAC4B1D0C4D8D92DE7086832F60F_label_en-US" xlink:label="lab_srt_RangeAxis_3640CAC4B1D0C4D8D92DE7086832F60F" 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_3640CAC4B1D0C4D8D92DE7086832F60F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeAxis_3640CAC4B1D0C4D8D92DE7086832F60F" xlink:to="lab_srt_RangeAxis_3640CAC4B1D0C4D8D92DE7086832F60F" xlink:type="arc" />
    <link:label id="lab_srt_RangeMember_9B79993BF6478F398041E708683297F8_terseLabel_en-US" xlink:label="lab_srt_RangeMember_9B79993BF6478F398041E708683297F8" 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_9B79993BF6478F398041E708683297F8_label_en-US" xlink:label="lab_srt_RangeMember_9B79993BF6478F398041E708683297F8" 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_9B79993BF6478F398041E708683297F8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeMember_9B79993BF6478F398041E708683297F8" xlink:to="lab_srt_RangeMember_9B79993BF6478F398041E708683297F8" xlink:type="arc" />
    <link:label id="lab_srt_MinimumMember_954E5B6F4C4630754119E708683242D7_terseLabel_en-US" xlink:label="lab_srt_MinimumMember_954E5B6F4C4630754119E708683242D7" 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_954E5B6F4C4630754119E708683242D7_label_en-US" xlink:label="lab_srt_MinimumMember_954E5B6F4C4630754119E708683242D7" 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_954E5B6F4C4630754119E708683242D7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MinimumMember_954E5B6F4C4630754119E708683242D7" xlink:to="lab_srt_MinimumMember_954E5B6F4C4630754119E708683242D7" xlink:type="arc" />
    <link:label id="lab_srt_MaximumMember_E1F377A2CDB989A0FAB9E7086833D483_terseLabel_en-US" xlink:label="lab_srt_MaximumMember_E1F377A2CDB989A0FAB9E7086833D483" 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_E1F377A2CDB989A0FAB9E7086833D483_label_en-US" xlink:label="lab_srt_MaximumMember_E1F377A2CDB989A0FAB9E7086833D483" 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_E1F377A2CDB989A0FAB9E7086833D483" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MaximumMember_E1F377A2CDB989A0FAB9E7086833D483" xlink:to="lab_srt_MaximumMember_E1F377A2CDB989A0FAB9E7086833D483" xlink:type="arc" />
    <link:label id="lab_us-gaap_AwardTypeAxis_ED346E036FC05CDB93D1E7086833A089_terseLabel_en-US" xlink:label="lab_us-gaap_AwardTypeAxis_ED346E036FC05CDB93D1E7086833A089" 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_ED346E036FC05CDB93D1E7086833A089_label_en-US" xlink:label="lab_us-gaap_AwardTypeAxis_ED346E036FC05CDB93D1E7086833A089" 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_ED346E036FC05CDB93D1E7086833A089" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AwardTypeAxis_ED346E036FC05CDB93D1E7086833A089" xlink:to="lab_us-gaap_AwardTypeAxis_ED346E036FC05CDB93D1E7086833A089" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6" 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_94E06C6837AFFFFC438AE7086833ADE6_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6" 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_94E06C6837AFFFFC438AE7086833ADE6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_2129D33F2C32C99CF8C7E70868333CD8_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember_2129D33F2C32C99CF8C7E70868333CD8" 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_2129D33F2C32C99CF8C7E70868333CD8_label_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember_2129D33F2C32C99CF8C7E70868333CD8" 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_2129D33F2C32C99CF8C7E70868333CD8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockOptionMember_2129D33F2C32C99CF8C7E70868333CD8" xlink:to="lab_us-gaap_EmployeeStockOptionMember_2129D33F2C32C99CF8C7E70868333CD8" xlink:type="arc" />
    <link:label id="lab_us-gaap_PerformanceSharesMember_D00D8F80668D26DDC488E7086833CFD5_terseLabel_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember_D00D8F80668D26DDC488E7086833CFD5" 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_D00D8F80668D26DDC488E7086833CFD5_label_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember_D00D8F80668D26DDC488E7086833CFD5" 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_D00D8F80668D26DDC488E7086833CFD5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PerformanceSharesMember_D00D8F80668D26DDC488E7086833CFD5" xlink:to="lab_us-gaap_PerformanceSharesMember_D00D8F80668D26DDC488E7086833CFD5" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" 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_D8A2FC2FD03CB4D440E3E70868347361_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_DBA08169676B742DA904E708683491D8_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_DBA08169676B742DA904E708683491D8" 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_DBA08169676B742DA904E708683491D8_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_DBA08169676B742DA904E708683491D8" 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_DBA08169676B742DA904E708683491D8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_DBA08169676B742DA904E708683491D8" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_DBA08169676B742DA904E708683491D8" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_2B060CE5F280D07EB3FAE70868345BAC_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_2B060CE5F280D07EB3FAE70868345BAC" 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_2B060CE5F280D07EB3FAE70868345BAC_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_2B060CE5F280D07EB3FAE70868345BAC" 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_2B060CE5F280D07EB3FAE70868345BAC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_2B060CE5F280D07EB3FAE70868345BAC" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_2B060CE5F280D07EB3FAE70868345BAC" xlink:type="arc" />
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F_terseLabel_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" 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_C697EEB16D53FCCC7290E7086834560F_label_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" 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_C697EEB16D53FCCC7290E7086834560F_documentation_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" 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-20181231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" xlink:to="lab_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" xlink:type="arc" />
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6_terseLabel_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" 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_264F4E96E1A5EC4E4E64E70868344CE6_label_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" 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_264F4E96E1A5EC4E4E64E70868344CE6_documentation_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" 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-20181231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" xlink:to="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" xlink:type="arc" />
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" 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_12773A846F4B25EDAC2BE7086835E0CB_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" 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_12773A846F4B25EDAC2BE7086835E0CB_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" 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-20181231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" xlink:type="arc" />
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" 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_A8F66694FE52E8D779FBE7086835F235_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" 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_A8F66694FE52E8D779FBE7086835F235_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" 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-20181231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" xlink:type="arc" />
    <link:label id="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2_terseLabel_en-US" xlink:label="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" 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_7F831F4EB0970F1ECB81E70868354BB2_label_en-US" xlink:label="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" 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_7F831F4EB0970F1ECB81E70868354BB2_documentation_en-US" xlink:label="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" 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-20181231.xsd#cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:label="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" xlink:to="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_749C4C255E38A265F539E7086835A3B6_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_749C4C255E38A265F539E7086835A3B6" 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_749C4C255E38A265F539E7086835A3B6_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_749C4C255E38A265F539E7086835A3B6" 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_749C4C255E38A265F539E7086835A3B6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_749C4C255E38A265F539E7086835A3B6" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_749C4C255E38A265F539E7086835A3B6" xlink:type="arc" />
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649_terseLabel_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" 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_78BFF63DE2295AAB8208E7086835A649_label_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" 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_78BFF63DE2295AAB8208E7086835A649_documentation_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" 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-20181231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" xlink:to="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" xlink:type="arc" />
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" 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_AB85B57B9399ECC68549E70868356BFC_label_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" 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_AB85B57B9399ECC68549E70868356BFC_documentation_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" 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-20181231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" xlink:to="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_34452323AEA458E40FB2E7086836DC7C_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_34452323AEA458E40FB2E7086836DC7C" 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_34452323AEA458E40FB2E7086836DC7C_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_34452323AEA458E40FB2E7086836DC7C" 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_34452323AEA458E40FB2E7086836DC7C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_34452323AEA458E40FB2E7086836DC7C" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_34452323AEA458E40FB2E7086836DC7C" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2FFE6BE6578AB91FFA03E7086836CFC4_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2FFE6BE6578AB91FFA03E7086836CFC4" 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_2FFE6BE6578AB91FFA03E7086836CFC4_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2FFE6BE6578AB91FFA03E7086836CFC4" 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_2FFE6BE6578AB91FFA03E7086836CFC4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2FFE6BE6578AB91FFA03E7086836CFC4" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2FFE6BE6578AB91FFA03E7086836CFC4" xlink:type="arc" />
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_595916F98EF2EFD74A25E7086836009C_verboseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense_595916F98EF2EFD74A25E7086836009C" 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_595916F98EF2EFD74A25E7086836009C_label_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense_595916F98EF2EFD74A25E7086836009C" 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_595916F98EF2EFD74A25E7086836009C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllocatedShareBasedCompensationExpense_595916F98EF2EFD74A25E7086836009C" xlink:to="lab_us-gaap_AllocatedShareBasedCompensationExpense_595916F98EF2EFD74A25E7086836009C" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_4700D1442A9987633190E708683B55CE_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_4700D1442A9987633190E708683B55CE" 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_4700D1442A9987633190E708683B55CE_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_4700D1442A9987633190E708683B55CE" 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_4700D1442A9987633190E708683B55CE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_4700D1442A9987633190E708683B55CE" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_4700D1442A9987633190E708683B55CE" xlink:type="arc" />
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC_terseLabel_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" 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_B90302AB9E3BC7A2FFBAE708683B03AC_label_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" 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_B90302AB9E3BC7A2FFBAE708683B03AC_documentation_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" 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-20181231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" xlink:to="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" xlink:type="arc" />
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_BC758216697003E6AD2596817F25285F_terseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_BC758216697003E6AD2596817F25285F" 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_BC758216697003E6AD2596817F25285F_label_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_BC758216697003E6AD2596817F25285F" 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_BC758216697003E6AD2596817F25285F_documentation_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_BC758216697003E6AD2596817F25285F" 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-20181231.xsd#cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:label="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_BC758216697003E6AD2596817F25285F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_BC758216697003E6AD2596817F25285F" xlink:to="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_BC758216697003E6AD2596817F25285F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_AE4A2152BDDEEB43BF8D966504B57994_periodStartLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent_AE4A2152BDDEEB43BF8D966504B57994" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_AE4A2152BDDEEB43BF8D966504B57994_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent_AE4A2152BDDEEB43BF8D966504B57994" 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_AE4A2152BDDEEB43BF8D966504B57994" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent_AE4A2152BDDEEB43BF8D966504B57994" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent_AE4A2152BDDEEB43BF8D966504B57994" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_7FE01E785BE50061DA2D966504B5D0E8_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_7FE01E785BE50061DA2D966504B5D0E8" 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_7FE01E785BE50061DA2D966504B5D0E8_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_7FE01E785BE50061DA2D966504B5D0E8" 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_7FE01E785BE50061DA2D966504B5D0E8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_7FE01E785BE50061DA2D966504B5D0E8" xlink:to="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_7FE01E785BE50061DA2D966504B5D0E8" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_48A18CB1233951A9BF64966504B58972_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_48A18CB1233951A9BF64966504B58972" 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_48A18CB1233951A9BF64966504B58972_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_48A18CB1233951A9BF64966504B58972" 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_48A18CB1233951A9BF64966504B58972" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_48A18CB1233951A9BF64966504B58972" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_48A18CB1233951A9BF64966504B58972" xlink:type="arc" />
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F4C952807A919176C00D966504B5A9CF_terseLabel_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F4C952807A919176C00D966504B5A9CF" 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_F4C952807A919176C00D966504B5A9CF_label_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F4C952807A919176C00D966504B5A9CF" 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_F4C952807A919176C00D966504B5A9CF_documentation_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F4C952807A919176C00D966504B5A9CF" 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-20181231.xsd#cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:label="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_F4C952807A919176C00D966504B5A9CF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_F4C952807A919176C00D966504B5A9CF" xlink:to="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F4C952807A919176C00D966504B5A9CF" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_3B53D1772F9A7F1339CC966504B61268_periodEndLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent_3B53D1772F9A7F1339CC966504B61268" 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_3B53D1772F9A7F1339CC966504B61268" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent_3B53D1772F9A7F1339CC966504B61268" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent_3B53D1772F9A7F1339CC966504B61268" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_7059E1A1FD9F8668087BE4466AF775CA_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract_7059E1A1FD9F8668087BE4466AF775CA" 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_7059E1A1FD9F8668087BE4466AF775CA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_7059E1A1FD9F8668087BE4466AF775CA" xlink:to="lab_us-gaap_CashAndCashEquivalentsAbstract_7059E1A1FD9F8668087BE4466AF775CA" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" 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_4A0237F1994EF5EE9E00E4466AF8109B_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" 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_4A0237F1994EF5EE9E00E4466AF8109B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" 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_DCBAA44E3BA6AEA8E710E4466AF81DF1_label_en-US" xlink:label="lab_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" 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_DCBAA44E3BA6AEA8E710E4466AF81DF1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" xlink:to="lab_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84" 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_08CC3DCDB0A09FAAD5B1E4466AF8CD84_label_en-US" xlink:label="lab_us-gaap_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84" 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_08CC3DCDB0A09FAAD5B1E4466AF8CD84" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84" xlink:to="lab_us-gaap_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShortTermInvestmentsMember_D2E6EADB845958520B57E4466AF88479_terseLabel_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember_D2E6EADB845958520B57E4466AF88479" 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_D2E6EADB845958520B57E4466AF88479_label_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember_D2E6EADB845958520B57E4466AF88479" 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_D2E6EADB845958520B57E4466AF88479" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShortTermInvestmentsMember_D2E6EADB845958520B57E4466AF88479" xlink:to="lab_us-gaap_ShortTermInvestmentsMember_D2E6EADB845958520B57E4466AF88479" xlink:type="arc" />
    <link:label id="lab_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135_terseLabel_en-US" xlink:label="lab_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:label id="lab_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135_label_en-US" xlink:label="lab_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_LegalEntityAxis" xlink:label="loc_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:to="lab_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:type="arc" />
    <link:label id="lab_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6_terseLabel_en-US" xlink:label="lab_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:label id="lab_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6_label_en-US" xlink:label="lab_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityDomain" xlink:label="loc_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6" xlink:to="lab_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6" xlink:type="arc" />
    <link:label id="lab_us-gaap_FinancialInstrumentAxis_4CEB5B427D310AEFEB56E4466AF979B4_terseLabel_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis_4CEB5B427D310AEFEB56E4466AF979B4" 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_4CEB5B427D310AEFEB56E4466AF979B4_label_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis_4CEB5B427D310AEFEB56E4466AF979B4" 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_4CEB5B427D310AEFEB56E4466AF979B4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancialInstrumentAxis_4CEB5B427D310AEFEB56E4466AF979B4" xlink:to="lab_us-gaap_FinancialInstrumentAxis_4CEB5B427D310AEFEB56E4466AF979B4" xlink:type="arc" />
    <link:label id="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C_terseLabel_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" 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_97FC2607B0553F0F3575E4466AF9FD4C_label_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" 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_97FC2607B0553F0F3575E4466AF9FD4C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" xlink:type="arc" />
    <link:label id="lab_us-gaap_CorporateBondSecuritiesMember_CD23DF5E31B4C10AB2BDE4466AFA26A6_terseLabel_en-US" xlink:label="lab_us-gaap_CorporateBondSecuritiesMember_CD23DF5E31B4C10AB2BDE4466AFA26A6" 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_CD23DF5E31B4C10AB2BDE4466AFA26A6_label_en-US" xlink:label="lab_us-gaap_CorporateBondSecuritiesMember_CD23DF5E31B4C10AB2BDE4466AFA26A6" 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_CD23DF5E31B4C10AB2BDE4466AFA26A6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CorporateBondSecuritiesMember_CD23DF5E31B4C10AB2BDE4466AFA26A6" xlink:to="lab_us-gaap_CorporateBondSecuritiesMember_CD23DF5E31B4C10AB2BDE4466AFA26A6" xlink:type="arc" />
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_43877EFAA5E9CE93BC5EE4466AFAC7D1_terseLabel_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember_43877EFAA5E9CE93BC5EE4466AFAC7D1" 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_43877EFAA5E9CE93BC5EE4466AFAC7D1_label_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember_43877EFAA5E9CE93BC5EE4466AFAC7D1" 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_43877EFAA5E9CE93BC5EE4466AFAC7D1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USTreasurySecuritiesMember_43877EFAA5E9CE93BC5EE4466AFAC7D1" xlink:to="lab_us-gaap_USTreasurySecuritiesMember_43877EFAA5E9CE93BC5EE4466AFAC7D1" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetBackedSecuritiesMember_967318B6D901EC5CF505E4466AFA830A_terseLabel_en-US" xlink:label="lab_us-gaap_AssetBackedSecuritiesMember_967318B6D901EC5CF505E4466AFA830A" 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_967318B6D901EC5CF505E4466AFA830A_label_en-US" xlink:label="lab_us-gaap_AssetBackedSecuritiesMember_967318B6D901EC5CF505E4466AFA830A" 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_967318B6D901EC5CF505E4466AFA830A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetBackedSecuritiesMember_967318B6D901EC5CF505E4466AFA830A" xlink:to="lab_us-gaap_AssetBackedSecuritiesMember_967318B6D901EC5CF505E4466AFA830A" xlink:type="arc" />
    <link:label id="lab_us-gaap_SovereignDebtSecuritiesMember_78B5D623801BADBA4557E4466AFA4576_terseLabel_en-US" xlink:label="lab_us-gaap_SovereignDebtSecuritiesMember_78B5D623801BADBA4557E4466AFA4576" 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_78B5D623801BADBA4557E4466AFA4576_label_en-US" xlink:label="lab_us-gaap_SovereignDebtSecuritiesMember_78B5D623801BADBA4557E4466AFA4576" 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_78B5D623801BADBA4557E4466AFA4576" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SovereignDebtSecuritiesMember_78B5D623801BADBA4557E4466AFA4576" xlink:to="lab_us-gaap_SovereignDebtSecuritiesMember_78B5D623801BADBA4557E4466AFA4576" xlink:type="arc" />
    <link:label id="lab_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480_terseLabel_en-US" xlink:label="lab_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" 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_1AE1677534DFF8105410E4466AFB5480_label_en-US" xlink:label="lab_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" 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_1AE1677534DFF8105410E4466AFB5480_documentation_en-US" xlink:label="lab_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" 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-20181231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" xlink:to="lab_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" xlink:type="arc" />
    <link:label id="lab_us-gaap_MunicipalBondsMember_B5B9E47498EB520F4AE6E4466AFAD675_terseLabel_en-US" xlink:label="lab_us-gaap_MunicipalBondsMember_B5B9E47498EB520F4AE6E4466AFAD675" 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_B5B9E47498EB520F4AE6E4466AFAD675_label_en-US" xlink:label="lab_us-gaap_MunicipalBondsMember_B5B9E47498EB520F4AE6E4466AFAD675" 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_B5B9E47498EB520F4AE6E4466AFAD675" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MunicipalBondsMember_B5B9E47498EB520F4AE6E4466AFAD675" xlink:to="lab_us-gaap_MunicipalBondsMember_B5B9E47498EB520F4AE6E4466AFAD675" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" 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_76184FF48F662D0CEC5FE4466AFBCB45_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" 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_76184FF48F662D0CEC5FE4466AFBCB45" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_0848EFC02F5167B9CA87E4466AFBEBDE_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_0848EFC02F5167B9CA87E4466AFBEBDE" 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_0848EFC02F5167B9CA87E4466AFBEBDE_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_0848EFC02F5167B9CA87E4466AFBEBDE" 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_0848EFC02F5167B9CA87E4466AFBEBDE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_0848EFC02F5167B9CA87E4466AFBEBDE" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_0848EFC02F5167B9CA87E4466AFBEBDE" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_0C17478501ABAFA03A86E4466AFB1CD7_negatedLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_0C17478501ABAFA03A86E4466AFB1CD7" 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_0C17478501ABAFA03A86E4466AFB1CD7_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_0C17478501ABAFA03A86E4466AFB1CD7" 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_0C17478501ABAFA03A86E4466AFB1CD7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_0C17478501ABAFA03A86E4466AFB1CD7" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_0C17478501ABAFA03A86E4466AFB1CD7" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_19213711F2EE0623CC33E4466AFB973B_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_19213711F2EE0623CC33E4466AFB973B" 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_19213711F2EE0623CC33E4466AFB973B_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_19213711F2EE0623CC33E4466AFB973B" 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_19213711F2EE0623CC33E4466AFB973B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_19213711F2EE0623CC33E4466AFB973B" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_19213711F2EE0623CC33E4466AFB973B" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4BAB27B098E200DD6F1EE4466AFB85BF_negatedLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4BAB27B098E200DD6F1EE4466AFB85BF" 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_4BAB27B098E200DD6F1EE4466AFB85BF_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4BAB27B098E200DD6F1EE4466AFB85BF" 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_4BAB27B098E200DD6F1EE4466AFB85BF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4BAB27B098E200DD6F1EE4466AFB85BF" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4BAB27B098E200DD6F1EE4466AFB85BF" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_D1D1883FFF4B5CBA3139E4466AFC321A_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_D1D1883FFF4B5CBA3139E4466AFC321A" 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_D1D1883FFF4B5CBA3139E4466AFC321A_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_D1D1883FFF4B5CBA3139E4466AFC321A" 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_D1D1883FFF4B5CBA3139E4466AFC321A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_D1D1883FFF4B5CBA3139E4466AFC321A" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_D1D1883FFF4B5CBA3139E4466AFC321A" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_8DA5D3E3AFFCE794F347E4466AFC6B26_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_8DA5D3E3AFFCE794F347E4466AFC6B26" 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_8DA5D3E3AFFCE794F347E4466AFC6B26_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_8DA5D3E3AFFCE794F347E4466AFC6B26" 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_8DA5D3E3AFFCE794F347E4466AFC6B26" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_8DA5D3E3AFFCE794F347E4466AFC6B26" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_8DA5D3E3AFFCE794F347E4466AFC6B26" xlink:type="arc" />
    <link:label id="lab_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D_terseLabel_en-US" xlink:label="lab_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Chiaro Technologies LLC [Member]</link:label>
    <link:label id="lab_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D_label_en-US" xlink:label="lab_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" 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_3F3037266ED5C067C7F7E44669128B6D_documentation_en-US" xlink:label="lab_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" 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-20181231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" xlink:to="lab_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration, noncurrent</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration, Liability, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentAbstract_A6219F4CD39252CAE7D4E3837FA6FD34_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentAbstract_A6219F4CD39252CAE7D4E3837FA6FD34" 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_A6219F4CD39252CAE7D4E3837FA6FD34" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_A6219F4CD39252CAE7D4E3837FA6FD34" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentAbstract_A6219F4CD39252CAE7D4E3837FA6FD34" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_F9212AEFAD158D5FDF49E3837FA61238_label_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_F9212AEFAD158D5FDF49E3837FA61238" 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_F9212AEFAD158D5FDF49E3837FA61238" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_F9212AEFAD158D5FDF49E3837FA61238" xlink:to="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_F9212AEFAD158D5FDF49E3837FA61238" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_9CCDAC483C2AF7A24316E3837FA779D4_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_9CCDAC483C2AF7A24316E3837FA779D4" 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_9CCDAC483C2AF7A24316E3837FA779D4_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_9CCDAC483C2AF7A24316E3837FA779D4" 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_9CCDAC483C2AF7A24316E3837FA779D4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_9CCDAC483C2AF7A24316E3837FA779D4" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_9CCDAC483C2AF7A24316E3837FA779D4" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" 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_FC19F12077FC405D9BB3E3837FA7C325_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" 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_FC19F12077FC405D9BB3E3837FA7C325" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" xlink:type="arc" />
    <link:label id="lab_us-gaap_LandMember_FDDBA54BE3BF1ECC7BEFE3837FA7D13F_terseLabel_en-US" xlink:label="lab_us-gaap_LandMember_FDDBA54BE3BF1ECC7BEFE3837FA7D13F" 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_FDDBA54BE3BF1ECC7BEFE3837FA7D13F_label_en-US" xlink:label="lab_us-gaap_LandMember_FDDBA54BE3BF1ECC7BEFE3837FA7D13F" 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_FDDBA54BE3BF1ECC7BEFE3837FA7D13F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LandMember_FDDBA54BE3BF1ECC7BEFE3837FA7D13F" xlink:to="lab_us-gaap_LandMember_FDDBA54BE3BF1ECC7BEFE3837FA7D13F" xlink:type="arc" />
    <link:label id="lab_us-gaap_BuildingMember_9F3EA65A8E60F34A7ECCE3837FA8B1B4_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingMember_9F3EA65A8E60F34A7ECCE3837FA8B1B4" 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_9F3EA65A8E60F34A7ECCE3837FA8B1B4_label_en-US" xlink:label="lab_us-gaap_BuildingMember_9F3EA65A8E60F34A7ECCE3837FA8B1B4" 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_9F3EA65A8E60F34A7ECCE3837FA8B1B4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BuildingMember_9F3EA65A8E60F34A7ECCE3837FA8B1B4" xlink:to="lab_us-gaap_BuildingMember_9F3EA65A8E60F34A7ECCE3837FA8B1B4" xlink:type="arc" />
    <link:label id="lab_us-gaap_BuildingImprovementsMember_13434B21E4DC4B541D8AE3837FA8E79F_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingImprovementsMember_13434B21E4DC4B541D8AE3837FA8E79F" 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_13434B21E4DC4B541D8AE3837FA8E79F_label_en-US" xlink:label="lab_us-gaap_BuildingImprovementsMember_13434B21E4DC4B541D8AE3837FA8E79F" 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_13434B21E4DC4B541D8AE3837FA8E79F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BuildingImprovementsMember_13434B21E4DC4B541D8AE3837FA8E79F" xlink:to="lab_us-gaap_BuildingImprovementsMember_13434B21E4DC4B541D8AE3837FA8E79F" xlink:type="arc" />
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_AD346C77F1C785F35BDBE3837FA8146D_verboseLabel_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember_AD346C77F1C785F35BDBE3837FA8146D" 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_AD346C77F1C785F35BDBE3837FA8146D_label_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember_AD346C77F1C785F35BDBE3837FA8146D" 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_AD346C77F1C785F35BDBE3837FA8146D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseholdImprovementsMember_AD346C77F1C785F35BDBE3837FA8146D" xlink:to="lab_us-gaap_LeaseholdImprovementsMember_AD346C77F1C785F35BDBE3837FA8146D" xlink:type="arc" />
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908_terseLabel_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" 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_1D7B7B12DBA26FCD36DCE3837FA8B908_label_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" 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_1D7B7B12DBA26FCD36DCE3837FA8B908_documentation_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" 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-20181231.xsd#cgnx_HardwareAndSoftwareMember" xlink:label="loc_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" xlink:to="lab_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" xlink:type="arc" />
    <link:label id="lab_us-gaap_EquipmentMember_E8E750F1A27D104F2D0BE3837FA8AB6D_verboseLabel_en-US" xlink:label="lab_us-gaap_EquipmentMember_E8E750F1A27D104F2D0BE3837FA8AB6D" 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_E8E750F1A27D104F2D0BE3837FA8AB6D_label_en-US" xlink:label="lab_us-gaap_EquipmentMember_E8E750F1A27D104F2D0BE3837FA8AB6D" 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_E8E750F1A27D104F2D0BE3837FA8AB6D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquipmentMember_E8E750F1A27D104F2D0BE3837FA8AB6D" xlink:to="lab_us-gaap_EquipmentMember_E8E750F1A27D104F2D0BE3837FA8AB6D" xlink:type="arc" />
    <link:label id="lab_us-gaap_FurnitureAndFixturesMember_B2CF10C3F966672038D2E3837FA95751_terseLabel_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember_B2CF10C3F966672038D2E3837FA95751" 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_B2CF10C3F966672038D2E3837FA95751_label_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember_B2CF10C3F966672038D2E3837FA95751" 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_B2CF10C3F966672038D2E3837FA95751" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FurnitureAndFixturesMember_B2CF10C3F966672038D2E3837FA95751" xlink:to="lab_us-gaap_FurnitureAndFixturesMember_B2CF10C3F966672038D2E3837FA95751" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271" 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_204ED415D26D7B7DF5F1E3837FA94271_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271" 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_204ED415D26D7B7DF5F1E3837FA94271" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_EF60BAD017EC706AEA6BE3837FA9C387_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross_EF60BAD017EC706AEA6BE3837FA9C387" 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_EF60BAD017EC706AEA6BE3837FA9C387_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross_EF60BAD017EC706AEA6BE3837FA9C387" 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_EF60BAD017EC706AEA6BE3837FA9C387" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentGross_EF60BAD017EC706AEA6BE3837FA9C387" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentGross_EF60BAD017EC706AEA6BE3837FA9C387" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_BD8D0F06750CB62C6FBFE3837FA97AFA_negatedLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_BD8D0F06750CB62C6FBFE3837FA97AFA" 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_BD8D0F06750CB62C6FBFE3837FA97AFA_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_BD8D0F06750CB62C6FBFE3837FA97AFA" 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_BD8D0F06750CB62C6FBFE3837FA97AFA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_BD8D0F06750CB62C6FBFE3837FA97AFA" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_BD8D0F06750CB62C6FBFE3837FA97AFA" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_0BD6EF50F448B133BE55E3837FAF340A_totalLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet_0BD6EF50F448B133BE55E3837FAF340A" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment, net, total</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_0BD6EF50F448B133BE55E3837FAF340A_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet_0BD6EF50F448B133BE55E3837FAF340A" 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_0BD6EF50F448B133BE55E3837FAF340A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_0BD6EF50F448B133BE55E3837FAF340A" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNet_0BD6EF50F448B133BE55E3837FAF340A" xlink:type="arc" />
    <link:label id="lab_srt_ValuationAndQualifyingAccountsAbstract_9D9C9AB52E2BF5F910F7FA5C2350368E_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsAbstract_9D9C9AB52E2BF5F910F7FA5C2350368E" 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_9D9C9AB52E2BF5F910F7FA5C2350368E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_9D9C9AB52E2BF5F910F7FA5C2350368E" xlink:to="lab_srt_ValuationAndQualifyingAccountsAbstract_9D9C9AB52E2BF5F910F7FA5C2350368E" xlink:type="arc" />
    <link:label id="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_0528B51798E5262733E4FA5C235071F8_terseLabel_en-US" xlink:label="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_0528B51798E5262733E4FA5C235071F8" 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_0528B51798E5262733E4FA5C235071F8_label_en-US" xlink:label="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_0528B51798E5262733E4FA5C235071F8" 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_0528B51798E5262733E4FA5C235071F8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_0528B51798E5262733E4FA5C235071F8" xlink:to="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_0528B51798E5262733E4FA5C235071F8" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_F6F7E26C794EE13E6BB3FA5C2321CD83_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_F6F7E26C794EE13E6BB3FA5C2321CD83" 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_F6F7E26C794EE13E6BB3FA5C2321CD83" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_F6F7E26C794EE13E6BB3FA5C2321CD83" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_F6F7E26C794EE13E6BB3FA5C2321CD83" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_4A875A26CA7AC1CE0514FA5C23215A2C_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock_4A875A26CA7AC1CE0514FA5C23215A2C" 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_4A875A26CA7AC1CE0514FA5C23215A2C_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock_4A875A26CA7AC1CE0514FA5C23215A2C" 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_4A875A26CA7AC1CE0514FA5C23215A2C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTextBlock_4A875A26CA7AC1CE0514FA5C23215A2C" xlink:to="lab_us-gaap_ScheduleOfGoodwillTextBlock_4A875A26CA7AC1CE0514FA5C23215A2C" xlink:type="arc" />
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_EB5BCF722C8C8E3229D7FA5C218BFA47_terseLabel_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_EB5BCF722C8C8E3229D7FA5C218BFA47" 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_EB5BCF722C8C8E3229D7FA5C218BFA47_label_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_EB5BCF722C8C8E3229D7FA5C218BFA47" 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_EB5BCF722C8C8E3229D7FA5C218BFA47_documentation_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_EB5BCF722C8C8E3229D7FA5C218BFA47" 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-20181231.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_EB5BCF722C8C8E3229D7FA5C218BFA47" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_EB5BCF722C8C8E3229D7FA5C218BFA47" xlink:to="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_EB5BCF722C8C8E3229D7FA5C218BFA47" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_5A3CAF8684EC00584A02FA5C218BDA3C_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_5A3CAF8684EC00584A02FA5C218BDA3C" 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_5A3CAF8684EC00584A02FA5C218BDA3C_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_5A3CAF8684EC00584A02FA5C218BDA3C" 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_5A3CAF8684EC00584A02FA5C218BDA3C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_5A3CAF8684EC00584A02FA5C218BDA3C" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_5A3CAF8684EC00584A02FA5C218BDA3C" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_9A2A232E3826964D7162FA5C218B42C4_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_9A2A232E3826964D7162FA5C218B42C4" 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_9A2A232E3826964D7162FA5C218B42C4_label_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_9A2A232E3826964D7162FA5C218B42C4" 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_9A2A232E3826964D7162FA5C218B42C4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_9A2A232E3826964D7162FA5C218B42C4" xlink:to="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_9A2A232E3826964D7162FA5C218B42C4" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_4274E256D739E067BDE7FA5C218BE7E1_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_4274E256D739E067BDE7FA5C218BE7E1" 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_4274E256D739E067BDE7FA5C218BE7E1_label_en-US" xlink:label="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_4274E256D739E067BDE7FA5C218BE7E1" 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_4274E256D739E067BDE7FA5C218BE7E1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_4274E256D739E067BDE7FA5C218BE7E1" xlink:to="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_4274E256D739E067BDE7FA5C218BE7E1" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_71687C26E328F03C71F7FA5C25CBBCAC_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_71687C26E328F03C71F7FA5C25CBBCAC" 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_71687C26E328F03C71F7FA5C25CBBCAC_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_71687C26E328F03C71F7FA5C25CBBCAC" 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_71687C26E328F03C71F7FA5C25CBBCAC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_71687C26E328F03C71F7FA5C25CBBCAC" xlink:to="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_71687C26E328F03C71F7FA5C25CBBCAC" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_68432089DA8AA81D2B4AFA5C25CCF39A_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_68432089DA8AA81D2B4AFA5C25CCF39A" 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_68432089DA8AA81D2B4AFA5C25CCF39A_label_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_68432089DA8AA81D2B4AFA5C25CCF39A" 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_68432089DA8AA81D2B4AFA5C25CCF39A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_68432089DA8AA81D2B4AFA5C25CCF39A" xlink:to="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_68432089DA8AA81D2B4AFA5C25CCF39A" xlink:type="arc" />
    <link:label id="lab_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_BA1490042040F53B164AE3837C67497F_label_en-US" xlink:label="lab_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_BA1490042040F53B164AE3837C67497F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Discontinued Operations and Disposal Groups [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:label="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_BA1490042040F53B164AE3837C67497F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_BA1490042040F53B164AE3837C67497F" xlink:to="lab_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_BA1490042040F53B164AE3837C67497F" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F_terseLabel_en-US" xlink:label="lab_us-gaap_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" 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_AC12BB5CF11902D7FDE7E3837C67AA5F_label_en-US" xlink:label="lab_us-gaap_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" 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_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:to="lab_us-gaap_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disposal Group Name [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF_label_en-US" xlink:label="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Group Name [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:to="lab_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B_terseLabel_en-US" xlink:label="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disposal Group Name [Domain]</link:label>
    <link:label id="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B_label_en-US" xlink:label="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Group Name [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:to="lab_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:type="arc" />
    <link:label id="lab_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E_terseLabel_en-US" xlink:label="lab_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sisd [Member]</link:label>
    <link:label id="lab_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E_label_en-US" xlink:label="lab_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sisd [Member]</link:label>
    <link:label id="lab_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E_documentation_en-US" xlink:label="lab_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">SISD.</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SisdMember" xlink:label="loc_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" xlink:to="lab_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisposalGroupClassificationAxis_E52413417767BBCCF0BAE3837C690D61_terseLabel_en-US" xlink:label="lab_us-gaap_DisposalGroupClassificationAxis_E52413417767BBCCF0BAE3837C690D61" 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_E52413417767BBCCF0BAE3837C690D61_label_en-US" xlink:label="lab_us-gaap_DisposalGroupClassificationAxis_E52413417767BBCCF0BAE3837C690D61" 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_E52413417767BBCCF0BAE3837C690D61" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_E52413417767BBCCF0BAE3837C690D61" xlink:to="lab_us-gaap_DisposalGroupClassificationAxis_E52413417767BBCCF0BAE3837C690D61" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625_terseLabel_en-US" xlink:label="lab_us-gaap_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625" 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_3EEB285A3290F062ADDAE3837C6A8625_label_en-US" xlink:label="lab_us-gaap_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625" 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_3EEB285A3290F062ADDAE3837C6A8625" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625" xlink:to="lab_us-gaap_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625" xlink:type="arc" />
    <link:label id="lab_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A_terseLabel_en-US" xlink:label="lab_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discontinued Operations, Disposed of by Sale [Member]</link:label>
    <link:label id="lab_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A_label_en-US" xlink:label="lab_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Discontinued Operations, Disposed of by Sale [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A" xlink:to="lab_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E_terseLabel_en-US" xlink:label="lab_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E" 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_14AF77ADFA0F65076F0FE3837C6A434E_label_en-US" xlink:label="lab_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E" 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_14AF77ADFA0F65076F0FE3837C6A434E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E" xlink:to="lab_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E" xlink:type="arc" />
    <link:label id="lab_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6_terseLabel_en-US" xlink:label="lab_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax expense (benefit) on discontinued operations</link:label>
    <link:label id="lab_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6_label_en-US" xlink:label="lab_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Discontinued Operation, Tax Effect of Discontinued Operation</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation" xlink:label="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6" xlink:to="lab_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_D312FC891ABAB7CCDC40E3837C6B2B2C_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_D312FC891ABAB7CCDC40E3837C6B2B2C" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income (loss) from discontinued operations</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_D312FC891ABAB7CCDC40E3837C6B2B2C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_D312FC891ABAB7CCDC40E3837C6B2B2C" xlink:to="lab_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_D312FC891ABAB7CCDC40E3837C6B2B2C" xlink:type="arc" />
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_9862F053B3B010B35F13E38380CDD032_terseLabel_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock_9862F053B3B010B35F13E38380CDD032" 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_9862F053B3B010B35F13E38380CDD032_label_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock_9862F053B3B010B35F13E38380CDD032" 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_9862F053B3B010B35F13E38380CDD032_documentation_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock_9862F053B3B010B35F13E38380CDD032" 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-20181231.xsd#cgnx_NatureOfOperationsPolicyTextBlock" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock_9862F053B3B010B35F13E38380CDD032" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NatureOfOperationsPolicyTextBlock_9862F053B3B010B35F13E38380CDD032" xlink:to="lab_cgnx_NatureOfOperationsPolicyTextBlock_9862F053B3B010B35F13E38380CDD032" xlink:type="arc" />
    <link:label id="lab_us-gaap_UseOfEstimates_B72022A0540E3DB6005EE38380CD7B44_terseLabel_en-US" xlink:label="lab_us-gaap_UseOfEstimates_B72022A0540E3DB6005EE38380CD7B44" 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_B72022A0540E3DB6005EE38380CD7B44_label_en-US" xlink:label="lab_us-gaap_UseOfEstimates_B72022A0540E3DB6005EE38380CD7B44" 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_B72022A0540E3DB6005EE38380CD7B44" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UseOfEstimates_B72022A0540E3DB6005EE38380CD7B44" xlink:to="lab_us-gaap_UseOfEstimates_B72022A0540E3DB6005EE38380CD7B44" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConsolidationPolicyTextBlock_D29A91EFABB0EC6C35DFE38380CD550B_terseLabel_en-US" xlink:label="lab_us-gaap_ConsolidationPolicyTextBlock_D29A91EFABB0EC6C35DFE38380CD550B" 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_D29A91EFABB0EC6C35DFE38380CD550B_label_en-US" xlink:label="lab_us-gaap_ConsolidationPolicyTextBlock_D29A91EFABB0EC6C35DFE38380CD550B" 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_D29A91EFABB0EC6C35DFE38380CD550B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConsolidationPolicyTextBlock_D29A91EFABB0EC6C35DFE38380CD550B" xlink:to="lab_us-gaap_ConsolidationPolicyTextBlock_D29A91EFABB0EC6C35DFE38380CD550B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_61A85063F4E3FCC0FCABE38380CD8191_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_61A85063F4E3FCC0FCABE38380CD8191" 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_61A85063F4E3FCC0FCABE38380CD8191_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_61A85063F4E3FCC0FCABE38380CD8191" 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_61A85063F4E3FCC0FCABE38380CD8191" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_61A85063F4E3FCC0FCABE38380CD8191" xlink:to="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_61A85063F4E3FCC0FCABE38380CD8191" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_EFCF23FBB0F9C4237D4BE38380CE19E4_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_EFCF23FBB0F9C4237D4BE38380CE19E4" 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_EFCF23FBB0F9C4237D4BE38380CE19E4_label_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_EFCF23FBB0F9C4237D4BE38380CE19E4" 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_EFCF23FBB0F9C4237D4BE38380CE19E4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_EFCF23FBB0F9C4237D4BE38380CE19E4" xlink:to="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_EFCF23FBB0F9C4237D4BE38380CE19E4" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_FC95C119BE335D6FC3A8E38380CE449C_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_FC95C119BE335D6FC3A8E38380CE449C" 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_FC95C119BE335D6FC3A8E38380CE449C_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_FC95C119BE335D6FC3A8E38380CE449C" 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_FC95C119BE335D6FC3A8E38380CE449C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_FC95C119BE335D6FC3A8E38380CE449C" xlink:to="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_FC95C119BE335D6FC3A8E38380CE449C" xlink:type="arc" />
    <link:label id="lab_us-gaap_ReceivablesPolicyTextBlock_05423811122D302A95A9E38380CE03B6_terseLabel_en-US" xlink:label="lab_us-gaap_ReceivablesPolicyTextBlock_05423811122D302A95A9E38380CE03B6" 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_05423811122D302A95A9E38380CE03B6_label_en-US" xlink:label="lab_us-gaap_ReceivablesPolicyTextBlock_05423811122D302A95A9E38380CE03B6" 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_05423811122D302A95A9E38380CE03B6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReceivablesPolicyTextBlock_05423811122D302A95A9E38380CE03B6" xlink:to="lab_us-gaap_ReceivablesPolicyTextBlock_05423811122D302A95A9E38380CE03B6" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_DE8C8D1C9D8684B654F6E38380CF764D_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock_DE8C8D1C9D8684B654F6E38380CF764D" 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_DE8C8D1C9D8684B654F6E38380CF764D_label_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock_DE8C8D1C9D8684B654F6E38380CF764D" 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_DE8C8D1C9D8684B654F6E38380CF764D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryPolicyTextBlock_DE8C8D1C9D8684B654F6E38380CF764D" xlink:to="lab_us-gaap_InventoryPolicyTextBlock_DE8C8D1C9D8684B654F6E38380CF764D" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_7853827C733515D89FE3E38380CFAD04_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_7853827C733515D89FE3E38380CFAD04" 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_7853827C733515D89FE3E38380CFAD04_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_7853827C733515D89FE3E38380CFAD04" 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_7853827C733515D89FE3E38380CFAD04" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_7853827C733515D89FE3E38380CFAD04" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_7853827C733515D89FE3E38380CFAD04" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_A26466A3AECD02525C28E38380CF484C_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_A26466A3AECD02525C28E38380CF484C" 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_A26466A3AECD02525C28E38380CF484C_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_A26466A3AECD02525C28E38380CF484C" 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_A26466A3AECD02525C28E38380CF484C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_A26466A3AECD02525C28E38380CF484C" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_A26466A3AECD02525C28E38380CF484C" xlink:type="arc" />
    <link:label id="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_B94CFB6EE01F9ABA0644E38380CF48FA_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_B94CFB6EE01F9ABA0644E38380CF48FA" 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_B94CFB6EE01F9ABA0644E38380CF48FA_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_B94CFB6EE01F9ABA0644E38380CF48FA" 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_B94CFB6EE01F9ABA0644E38380CF48FA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_B94CFB6EE01F9ABA0644E38380CF48FA" xlink:to="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_B94CFB6EE01F9ABA0644E38380CF48FA" xlink:type="arc" />
    <link:label id="lab_us-gaap_StandardProductWarrantyPolicy_462887E6A3AC6946BE4DE38380CF623F_terseLabel_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyPolicy_462887E6A3AC6946BE4DE38380CF623F" 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_462887E6A3AC6946BE4DE38380CF623F_label_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyPolicy_462887E6A3AC6946BE4DE38380CF623F" 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_462887E6A3AC6946BE4DE38380CF623F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardProductWarrantyPolicy_462887E6A3AC6946BE4DE38380CF623F" xlink:to="lab_us-gaap_StandardProductWarrantyPolicy_462887E6A3AC6946BE4DE38380CF623F" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_FFF41F4A17002546FE48E38380D0EB3D_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_FFF41F4A17002546FE48E38380D0EB3D" 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_FFF41F4A17002546FE48E38380D0EB3D_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_FFF41F4A17002546FE48E38380D0EB3D" 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_FFF41F4A17002546FE48E38380D0EB3D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_FFF41F4A17002546FE48E38380D0EB3D" xlink:to="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_FFF41F4A17002546FE48E38380D0EB3D" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueRecognitionPolicyTextBlock_2CDBA8B3CFA01832C76BE38380D03B97_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRecognitionPolicyTextBlock_2CDBA8B3CFA01832C76BE38380D03B97" 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_2CDBA8B3CFA01832C76BE38380D03B97_label_en-US" xlink:label="lab_us-gaap_RevenueRecognitionPolicyTextBlock_2CDBA8B3CFA01832C76BE38380D03B97" 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_2CDBA8B3CFA01832C76BE38380D03B97" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRecognitionPolicyTextBlock_2CDBA8B3CFA01832C76BE38380D03B97" xlink:to="lab_us-gaap_RevenueRecognitionPolicyTextBlock_2CDBA8B3CFA01832C76BE38380D03B97" xlink:type="arc" />
    <link:label id="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_E954E27493DA1D4391E2E38380D08867_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_E954E27493DA1D4391E2E38380D08867" 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_E954E27493DA1D4391E2E38380D08867_label_en-US" xlink:label="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_E954E27493DA1D4391E2E38380D08867" 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_E954E27493DA1D4391E2E38380D08867" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_E954E27493DA1D4391E2E38380D08867" xlink:to="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_E954E27493DA1D4391E2E38380D08867" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_E68C40C2F7FB59F760A7E38380D038B5_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock_E68C40C2F7FB59F760A7E38380D038B5" 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_E68C40C2F7FB59F760A7E38380D038B5_label_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock_E68C40C2F7FB59F760A7E38380D038B5" 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_E68C40C2F7FB59F760A7E38380D038B5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingCostsPolicyTextBlock_E68C40C2F7FB59F760A7E38380D038B5" xlink:to="lab_us-gaap_AdvertisingCostsPolicyTextBlock_E68C40C2F7FB59F760A7E38380D038B5" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_19B383880AA419F188FDE38380D0A530_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_19B383880AA419F188FDE38380D0A530" 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_19B383880AA419F188FDE38380D0A530_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_19B383880AA419F188FDE38380D0A530" 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_19B383880AA419F188FDE38380D0A530" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_19B383880AA419F188FDE38380D0A530" xlink:to="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_19B383880AA419F188FDE38380D0A530" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_CB1809B5AFE6869E5F03E38380D18981_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock_CB1809B5AFE6869E5F03E38380D18981" 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_CB1809B5AFE6869E5F03E38380D18981_label_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock_CB1809B5AFE6869E5F03E38380D18981" 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_CB1809B5AFE6869E5F03E38380D18981" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxPolicyTextBlock_CB1809B5AFE6869E5F03E38380D18981" xlink:to="lab_us-gaap_IncomeTaxPolicyTextBlock_CB1809B5AFE6869E5F03E38380D18981" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerSharePolicyTextBlock_6D2CBD31AA41D65D196EE38380D1D4CB_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock_6D2CBD31AA41D65D196EE38380D1D4CB" 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_6D2CBD31AA41D65D196EE38380D1D4CB_label_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock_6D2CBD31AA41D65D196EE38380D1D4CB" 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_6D2CBD31AA41D65D196EE38380D1D4CB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerSharePolicyTextBlock_6D2CBD31AA41D65D196EE38380D1D4CB" xlink:to="lab_us-gaap_EarningsPerSharePolicyTextBlock_6D2CBD31AA41D65D196EE38380D1D4CB" xlink:type="arc" />
    <link:label id="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_2E60486000E210B36E0AE38380D1B6DE_terseLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_2E60486000E210B36E0AE38380D1B6DE" 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_2E60486000E210B36E0AE38380D1B6DE_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_2E60486000E210B36E0AE38380D1B6DE" 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_2E60486000E210B36E0AE38380D1B6DE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_2E60486000E210B36E0AE38380D1B6DE" xlink:to="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_2E60486000E210B36E0AE38380D1B6DE" xlink:type="arc" />
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_E7D0C350D5C8A1CF487DE38380D1E607_terseLabel_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_E7D0C350D5C8A1CF487DE38380D1E607" 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_E7D0C350D5C8A1CF487DE38380D1E607_label_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_E7D0C350D5C8A1CF487DE38380D1E607" 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_E7D0C350D5C8A1CF487DE38380D1E607_documentation_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_E7D0C350D5C8A1CF487DE38380D1E607" 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-20181231.xsd#cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_E7D0C350D5C8A1CF487DE38380D1E607" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_E7D0C350D5C8A1CF487DE38380D1E607" xlink:to="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_E7D0C350D5C8A1CF487DE38380D1E607" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativesPolicyTextBlock_836FAFE8EA456FAB58E2E38380D14CF3_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesPolicyTextBlock_836FAFE8EA456FAB58E2E38380D14CF3" 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_836FAFE8EA456FAB58E2E38380D14CF3_label_en-US" xlink:label="lab_us-gaap_DerivativesPolicyTextBlock_836FAFE8EA456FAB58E2E38380D14CF3" 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_836FAFE8EA456FAB58E2E38380D14CF3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativesPolicyTextBlock_836FAFE8EA456FAB58E2E38380D14CF3" xlink:to="lab_us-gaap_DerivativesPolicyTextBlock_836FAFE8EA456FAB58E2E38380D14CF3" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationsPolicy_62815E36A9A57E655F10E39267E73ED1_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy_62815E36A9A57E655F10E39267E73ED1" 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_62815E36A9A57E655F10E39267E73ED1_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy_62815E36A9A57E655F10E39267E73ED1" 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_62815E36A9A57E655F10E39267E73ED1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsPolicy_62815E36A9A57E655F10E39267E73ED1" xlink:to="lab_us-gaap_BusinessCombinationsPolicy_62815E36A9A57E655F10E39267E73ED1" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductLiabilityContingencyTable_9B95866CD96AD3C552A6FA5C20DE1D97_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyTable_9B95866CD96AD3C552A6FA5C20DE1D97" 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_9B95866CD96AD3C552A6FA5C20DE1D97_label_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyTable_9B95866CD96AD3C552A6FA5C20DE1D97" 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_9B95866CD96AD3C552A6FA5C20DE1D97" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_9B95866CD96AD3C552A6FA5C20DE1D97" xlink:to="lab_us-gaap_ProductLiabilityContingencyTable_9B95866CD96AD3C552A6FA5C20DE1D97" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductLiabilityContingencyLineItems_4711C0B12A5BA4010226FA5C20DFB5BC_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyLineItems_4711C0B12A5BA4010226FA5C20DFB5BC" 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_4711C0B12A5BA4010226FA5C20DFB5BC_label_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyLineItems_4711C0B12A5BA4010226FA5C20DFB5BC" 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_4711C0B12A5BA4010226FA5C20DFB5BC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_4711C0B12A5BA4010226FA5C20DFB5BC" xlink:to="lab_us-gaap_ProductLiabilityContingencyLineItems_4711C0B12A5BA4010226FA5C20DFB5BC" xlink:type="arc" />
    <link:label id="lab_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC_terseLabel_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" 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_4062B271E892CEE7F0F3FA5C20DFDDEC_label_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" 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_4062B271E892CEE7F0F3FA5C20DFDDEC_documentation_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" 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-20181231.xsd#cgnx_ProductWarrantyPeriod" xlink:label="loc_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" xlink:to="lab_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" xlink:type="arc" />
    <link:label id="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4D8B64413B7F36A8E7C4FA5C20E81682_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4D8B64413B7F36A8E7C4FA5C20E81682" 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_4D8B64413B7F36A8E7C4FA5C20E81682_label_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4D8B64413B7F36A8E7C4FA5C20E81682" 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_4D8B64413B7F36A8E7C4FA5C20E81682" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4D8B64413B7F36A8E7C4FA5C20E81682" xlink:to="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4D8B64413B7F36A8E7C4FA5C20E81682" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_426F6447EBB99300AF6AFA5C20E9C2C1_periodStartLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual_426F6447EBB99300AF6AFA5C20E9C2C1" 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_426F6447EBB99300AF6AFA5C20E9C2C1_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual_426F6447EBB99300AF6AFA5C20E9C2C1" 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_426F6447EBB99300AF6AFA5C20E9C2C1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrual_426F6447EBB99300AF6AFA5C20E9C2C1" xlink:to="lab_us-gaap_ProductWarrantyAccrual_426F6447EBB99300AF6AFA5C20E9C2C1" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_0653CB7BE442B41EF4C0FA5C20E9C04B_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_0653CB7BE442B41EF4C0FA5C20E9C04B" 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_0653CB7BE442B41EF4C0FA5C20E9C04B_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_0653CB7BE442B41EF4C0FA5C20E9C04B" 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_0653CB7BE442B41EF4C0FA5C20E9C04B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_0653CB7BE442B41EF4C0FA5C20E9C04B" xlink:to="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_0653CB7BE442B41EF4C0FA5C20E9C04B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrualPayments_639508057AA7B6A05CE5FA5C20E9153A_negatedLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualPayments_639508057AA7B6A05CE5FA5C20E9153A" 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_639508057AA7B6A05CE5FA5C20E9153A_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualPayments_639508057AA7B6A05CE5FA5C20E9153A" 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_639508057AA7B6A05CE5FA5C20E9153A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualPayments_639508057AA7B6A05CE5FA5C20E9153A" xlink:to="lab_us-gaap_ProductWarrantyAccrualPayments_639508057AA7B6A05CE5FA5C20E9153A" xlink:type="arc" />
    <link:label id="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7EBF3F742D76E5796369FA5C20E91718_terseLabel_en-US" xlink:label="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7EBF3F742D76E5796369FA5C20E91718" 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_7EBF3F742D76E5796369FA5C20E91718_label_en-US" xlink:label="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7EBF3F742D76E5796369FA5C20E91718" 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_7EBF3F742D76E5796369FA5C20E91718" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7EBF3F742D76E5796369FA5C20E91718" xlink:to="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7EBF3F742D76E5796369FA5C20E91718" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_A649DB3E9461A246D295FA5C20E9D8B3_periodEndLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual_A649DB3E9461A246D295FA5C20E9D8B3" 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_A649DB3E9461A246D295FA5C20E9D8B3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrual_A649DB3E9461A246D295FA5C20E9D8B3" xlink:to="lab_us-gaap_ProductWarrantyAccrual_A649DB3E9461A246D295FA5C20E9D8B3" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryDisclosureTextBlock_C50674D7126F72F827A6FA5C20F859F7_verboseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock_C50674D7126F72F827A6FA5C20F859F7" 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_C50674D7126F72F827A6FA5C20F859F7_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock_C50674D7126F72F827A6FA5C20F859F7" 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_C50674D7126F72F827A6FA5C20F859F7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureTextBlock_C50674D7126F72F827A6FA5C20F859F7" xlink:to="lab_us-gaap_InventoryDisclosureTextBlock_C50674D7126F72F827A6FA5C20F859F7" xlink:type="arc" />
    <link:label id="lab_us-gaap_GuaranteesAbstract_519761257CCF6FF2268DE4466A768BF8_label_en-US" xlink:label="lab_us-gaap_GuaranteesAbstract_519761257CCF6FF2268DE4466A768BF8" 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_519761257CCF6FF2268DE4466A768BF8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GuaranteesAbstract_519761257CCF6FF2268DE4466A768BF8" xlink:to="lab_us-gaap_GuaranteesAbstract_519761257CCF6FF2268DE4466A768BF8" xlink:type="arc" />
    <link:label id="lab_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" 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_7AD5ACE3EEE1BC5EAD94E4466A774120_label_en-US" xlink:label="lab_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" 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_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="lab_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:type="arc" />
    <link:label id="lab_srt_LitigationCaseAxis_8766E652DD9666EEE4A6E4466A7971EB_terseLabel_en-US" xlink:label="lab_srt_LitigationCaseAxis_8766E652DD9666EEE4A6E4466A7971EB" 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_8766E652DD9666EEE4A6E4466A7971EB_label_en-US" xlink:label="lab_srt_LitigationCaseAxis_8766E652DD9666EEE4A6E4466A7971EB" 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_8766E652DD9666EEE4A6E4466A7971EB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_LitigationCaseAxis_8766E652DD9666EEE4A6E4466A7971EB" xlink:to="lab_srt_LitigationCaseAxis_8766E652DD9666EEE4A6E4466A7971EB" xlink:type="arc" />
    <link:label id="lab_srt_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3_terseLabel_en-US" xlink:label="lab_srt_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3" 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_43E5098F39B4796A1CBBE4466A7981E3_label_en-US" xlink:label="lab_srt_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3" 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_43E5098F39B4796A1CBBE4466A7981E3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3" xlink:to="lab_srt_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3" xlink:type="arc" />
    <link:label id="lab_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6_terseLabel_en-US" xlink:label="lab_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">AMETEK Matter [Member]</link:label>
    <link:label id="lab_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6_label_en-US" xlink:label="lab_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">AMETEK Matter [Member]</link:label>
    <link:label id="lab_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6_documentation_en-US" xlink:label="lab_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">AMETEK Matter [Member]</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AMETEKMatterMember" xlink:label="loc_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" xlink:to="lab_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" xlink:type="arc" />
    <link:label id="lab_us-gaap_LitigationStatusAxis_8E7B0DDB918CB8177949E4466A79A17E_terseLabel_en-US" xlink:label="lab_us-gaap_LitigationStatusAxis_8E7B0DDB918CB8177949E4466A79A17E" 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_8E7B0DDB918CB8177949E4466A79A17E_label_en-US" xlink:label="lab_us-gaap_LitigationStatusAxis_8E7B0DDB918CB8177949E4466A79A17E" 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_8E7B0DDB918CB8177949E4466A79A17E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LitigationStatusAxis_8E7B0DDB918CB8177949E4466A79A17E" xlink:to="lab_us-gaap_LitigationStatusAxis_8E7B0DDB918CB8177949E4466A79A17E" xlink:type="arc" />
    <link:label id="lab_us-gaap_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B_terseLabel_en-US" xlink:label="lab_us-gaap_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B" 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_B83619FF3B5C751A730BE4466A7A3F9B_label_en-US" xlink:label="lab_us-gaap_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B" 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_B83619FF3B5C751A730BE4466A7A3F9B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B" xlink:to="lab_us-gaap_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B" xlink:type="arc" />
    <link:label id="lab_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140_terseLabel_en-US" xlink:label="lab_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Settled Litigation [Member]</link:label>
    <link:label id="lab_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140_label_en-US" xlink:label="lab_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Settled Litigation [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SettledLitigationMember" xlink:label="loc_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140" xlink:to="lab_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140" xlink:type="arc" />
    <link:label id="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_DDFF140D97E8278E38DDE4466A7A857B_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_DDFF140D97E8278E38DDE4466A7A857B" 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_DDFF140D97E8278E38DDE4466A7A857B_label_en-US" xlink:label="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_DDFF140D97E8278E38DDE4466A7A857B" 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_DDFF140D97E8278E38DDE4466A7A857B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_DDFF140D97E8278E38DDE4466A7A857B" xlink:to="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_DDFF140D97E8278E38DDE4466A7A857B" xlink:type="arc" />
    <link:label id="lab_us-gaap_LossContingencyNatureDomain_52C65E3EFA69E2D4E41EE4466A7AB2F8_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyNatureDomain_52C65E3EFA69E2D4E41EE4466A7AB2F8" 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_52C65E3EFA69E2D4E41EE4466A7AB2F8_label_en-US" xlink:label="lab_us-gaap_LossContingencyNatureDomain_52C65E3EFA69E2D4E41EE4466A7AB2F8" 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_52C65E3EFA69E2D4E41EE4466A7AB2F8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyNatureDomain_52C65E3EFA69E2D4E41EE4466A7AB2F8" xlink:to="lab_us-gaap_LossContingencyNatureDomain_52C65E3EFA69E2D4E41EE4466A7AB2F8" xlink:type="arc" />
    <link:label id="lab_us-gaap_GuaranteeObligationsMember_72B956BD38925E7E2282E4466A7B31CD_terseLabel_en-US" xlink:label="lab_us-gaap_GuaranteeObligationsMember_72B956BD38925E7E2282E4466A7B31CD" 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_72B956BD38925E7E2282E4466A7B31CD_label_en-US" xlink:label="lab_us-gaap_GuaranteeObligationsMember_72B956BD38925E7E2282E4466A7B31CD" 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_72B956BD38925E7E2282E4466A7B31CD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GuaranteeObligationsMember_72B956BD38925E7E2282E4466A7B31CD" xlink:to="lab_us-gaap_GuaranteeObligationsMember_72B956BD38925E7E2282E4466A7B31CD" xlink:type="arc" />
    <link:label id="lab_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" 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_83E7B97EFAE02C2442B6E4466A7BD734_label_en-US" xlink:label="lab_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" 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_83E7B97EFAE02C2442B6E4466A7BD734" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:to="lab_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:type="arc" />
    <link:label id="lab_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078_terseLabel_en-US" xlink:label="lab_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss contingency, damages awarded, refund of product purchase price, value</link:label>
    <link:label id="lab_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078_label_en-US" xlink:label="lab_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency, Damages Awarded, Refund Of Product Purchase Price, Value</link:label>
    <link:label id="lab_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078_documentation_en-US" xlink:label="lab_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Loss Contingency, Damages Awarded, Refund Of Product Purchase Price, Value</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" xlink:to="lab_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" xlink:type="arc" />
    <link:label id="lab_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD_terseLabel_en-US" xlink:label="lab_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss contingency, damages awarded, reimbursement of legal fees, value</link:label>
    <link:label id="lab_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD_label_en-US" xlink:label="lab_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency, Damages Awarded, Reimbursement Of Legal Fees, Value</link:label>
    <link:label id="lab_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD_documentation_en-US" xlink:label="lab_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Loss Contingency, Damages Awarded, Reimbursement Of Legal Fees, Value</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" xlink:to="lab_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" xlink:type="arc" />
    <link:label id="lab_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269_terseLabel_en-US" xlink:label="lab_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Litigation settlement, expense</link:label>
    <link:label id="lab_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269_label_en-US" xlink:label="lab_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Litigation Settlement, Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationSettlementExpense" xlink:label="loc_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269" xlink:to="lab_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdvertisingExpense_C0A81ECE839BC0CC77C5FA5C22DEB4AF_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingExpense_C0A81ECE839BC0CC77C5FA5C22DEB4AF" 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_C0A81ECE839BC0CC77C5FA5C22DEB4AF_label_en-US" xlink:label="lab_us-gaap_AdvertisingExpense_C0A81ECE839BC0CC77C5FA5C22DEB4AF" 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_C0A81ECE839BC0CC77C5FA5C22DEB4AF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingExpense_C0A81ECE839BC0CC77C5FA5C22DEB4AF" xlink:to="lab_us-gaap_AdvertisingExpense_C0A81ECE839BC0CC77C5FA5C22DEB4AF" xlink:type="arc" />
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_3856197B9C3B3BD40CC6E3CA0B7B18C3_terseLabel_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_3856197B9C3B3BD40CC6E3CA0B7B18C3" 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_3856197B9C3B3BD40CC6E3CA0B7B18C3_label_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_3856197B9C3B3BD40CC6E3CA0B7B18C3" 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_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:to="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_07B4E17CFD66425714D1E3837CFD6959_periodStartLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits_07B4E17CFD66425714D1E3837CFD6959" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance of reserve for income taxes</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_07B4E17CFD66425714D1E3837CFD6959_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits_07B4E17CFD66425714D1E3837CFD6959" 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_07B4E17CFD66425714D1E3837CFD6959" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefits_07B4E17CFD66425714D1E3837CFD6959" xlink:to="lab_us-gaap_UnrecognizedTaxBenefits_07B4E17CFD66425714D1E3837CFD6959" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_3FDFDA376B703FEE111BE3837CFE2DC8_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_3FDFDA376B703FEE111BE3837CFE2DC8" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Gross amounts of decreases in unrecognized tax benefits as a result of tax positions taken in prior periods</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_3FDFDA376B703FEE111BE3837CFE2DC8_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_3FDFDA376B703FEE111BE3837CFE2DC8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_3FDFDA376B703FEE111BE3837CFE2DC8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_3FDFDA376B703FEE111BE3837CFE2DC8" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_3FDFDA376B703FEE111BE3837CFE2DC8" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_EF67D69134503C2B09C5E3837CFE0884_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_EF67D69134503C2B09C5E3837CFE0884" 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_EF67D69134503C2B09C5E3837CFE0884_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_EF67D69134503C2B09C5E3837CFE0884" 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_EF67D69134503C2B09C5E3837CFE0884" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_EF67D69134503C2B09C5E3837CFE0884" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_EF67D69134503C2B09C5E3837CFE0884" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_BF0F48AEC0FDF589205DE3837CFEC41F_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_BF0F48AEC0FDF589205DE3837CFEC41F" 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_BF0F48AEC0FDF589205DE3837CFEC41F_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_BF0F48AEC0FDF589205DE3837CFEC41F" 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_BF0F48AEC0FDF589205DE3837CFEC41F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_BF0F48AEC0FDF589205DE3837CFEC41F" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_BF0F48AEC0FDF589205DE3837CFEC41F" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_3F2614A052619F036BCDE3837CFE40FF_negatedLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_3F2614A052619F036BCDE3837CFE40FF" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Gross amounts of decreases in unrecognized tax benefits relating to settlements with taxing authorities</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_3F2614A052619F036BCDE3837CFE40FF_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_3F2614A052619F036BCDE3837CFE40FF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_3F2614A052619F036BCDE3837CFE40FF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_3F2614A052619F036BCDE3837CFE40FF" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_3F2614A052619F036BCDE3837CFE40FF" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_D76B3F2BF90936272F20E3837CFF81D5_negatedLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_D76B3F2BF90936272F20E3837CFF81D5" 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_D76B3F2BF90936272F20E3837CFF81D5_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_D76B3F2BF90936272F20E3837CFF81D5" 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_D76B3F2BF90936272F20E3837CFF81D5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_D76B3F2BF90936272F20E3837CFF81D5" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_D76B3F2BF90936272F20E3837CFF81D5" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_F814557CCD699A8BAEFAE3837CFF959F_periodEndLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits_F814557CCD699A8BAEFAE3837CFF959F" 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_F814557CCD699A8BAEFAE3837CFF959F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefits_F814557CCD699A8BAEFAE3837CFF959F" xlink:to="lab_us-gaap_UnrecognizedTaxBenefits_F814557CCD699A8BAEFAE3837CFF959F" xlink:type="arc" />
    <link:label id="lab_us-gaap_NoncompeteAgreementsMember_131EFA86EDA3B2677C64FA5C23B20320_terseLabel_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember_131EFA86EDA3B2677C64FA5C23B20320" 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_131EFA86EDA3B2677C64FA5C23B20320_label_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember_131EFA86EDA3B2677C64FA5C23B20320" 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_131EFA86EDA3B2677C64FA5C23B20320" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncompeteAgreementsMember_131EFA86EDA3B2677C64FA5C23B20320" xlink:to="lab_us-gaap_NoncompeteAgreementsMember_131EFA86EDA3B2677C64FA5C23B20320" xlink:type="arc" />
    <link:label id="lab_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6_terseLabel_en-US" xlink:label="lab_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" 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_CA31C0E2C45E3ADF5777FA5C23B32EF6_label_en-US" xlink:label="lab_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" 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_CA31C0E2C45E3ADF5777FA5C23B32EF6_documentation_en-US" xlink:label="lab_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" 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-20181231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" xlink:to="lab_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_9444EE0D484083F75530FA5C23B3176D_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_9444EE0D484083F75530FA5C23B3176D" 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_9444EE0D484083F75530FA5C23B3176D_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_9444EE0D484083F75530FA5C23B3176D" 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_9444EE0D484083F75530FA5C23B3176D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_9444EE0D484083F75530FA5C23B3176D" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_9444EE0D484083F75530FA5C23B3176D" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_0F6C3CF33B7472A4E032FA5C23B45931_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_0F6C3CF33B7472A4E032FA5C23B45931" 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_0F6C3CF33B7472A4E032FA5C23B45931_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_0F6C3CF33B7472A4E032FA5C23B45931" 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_0F6C3CF33B7472A4E032FA5C23B45931" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_0F6C3CF33B7472A4E032FA5C23B45931" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_0F6C3CF33B7472A4E032FA5C23B45931" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_6E4D16DBC46CA057350CFA5C23B4E433_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_6E4D16DBC46CA057350CFA5C23B4E433" 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_6E4D16DBC46CA057350CFA5C23B4E433_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_6E4D16DBC46CA057350CFA5C23B4E433" 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_6E4D16DBC46CA057350CFA5C23B4E433" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_6E4D16DBC46CA057350CFA5C23B4E433" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_6E4D16DBC46CA057350CFA5C23B4E433" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_42888A27CCEB0D0B44ABFA5C23B44139_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_42888A27CCEB0D0B44ABFA5C23B44139" 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_42888A27CCEB0D0B44ABFA5C23B44139_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_42888A27CCEB0D0B44ABFA5C23B44139" 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_42888A27CCEB0D0B44ABFA5C23B44139" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_42888A27CCEB0D0B44ABFA5C23B44139" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_42888A27CCEB0D0B44ABFA5C23B44139" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_F0E41CF467FB44E9006EFA5C23B449CB_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_F0E41CF467FB44E9006EFA5C23B449CB" 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_F0E41CF467FB44E9006EFA5C23B449CB_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_F0E41CF467FB44E9006EFA5C23B449CB" 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_F0E41CF467FB44E9006EFA5C23B449CB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_F0E41CF467FB44E9006EFA5C23B449CB" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_F0E41CF467FB44E9006EFA5C23B449CB" xlink:type="arc" />
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5_negatedTerseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" 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_CFEE909B5D77CAA76180FA5C23B498C5_label_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" 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_CFEE909B5D77CAA76180FA5C23B498C5_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" 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-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" xlink:to="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_552C2D9537B7B0CA85B7FA5C23BA0325_negatedLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_552C2D9537B7B0CA85B7FA5C23BA0325" 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_552C2D9537B7B0CA85B7FA5C23BA0325_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_552C2D9537B7B0CA85B7FA5C23BA0325" 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_552C2D9537B7B0CA85B7FA5C23BA0325" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_552C2D9537B7B0CA85B7FA5C23BA0325" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_552C2D9537B7B0CA85B7FA5C23BA0325" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF" 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_36878E2C27596FA80A35E3837CA96CAF_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF" 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_36878E2C27596FA80A35E3837CA96CAF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF" xlink:to="lab_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF" xlink:type="arc" />
    <link:label id="lab_srt_StatementGeographicalAxis_CFBF3D30E29EDAC21DE0E3837CAA41F6_terseLabel_en-US" xlink:label="lab_srt_StatementGeographicalAxis_CFBF3D30E29EDAC21DE0E3837CAA41F6" 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_CFBF3D30E29EDAC21DE0E3837CAA41F6_label_en-US" xlink:label="lab_srt_StatementGeographicalAxis_CFBF3D30E29EDAC21DE0E3837CAA41F6" 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_CFBF3D30E29EDAC21DE0E3837CAA41F6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StatementGeographicalAxis_CFBF3D30E29EDAC21DE0E3837CAA41F6" xlink:to="lab_srt_StatementGeographicalAxis_CFBF3D30E29EDAC21DE0E3837CAA41F6" xlink:type="arc" />
    <link:label id="lab_srt_SegmentGeographicalDomain_054F595DEADE58D96D9EE3837CAAFBF4_terseLabel_en-US" xlink:label="lab_srt_SegmentGeographicalDomain_054F595DEADE58D96D9EE3837CAAFBF4" 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_054F595DEADE58D96D9EE3837CAAFBF4_label_en-US" xlink:label="lab_srt_SegmentGeographicalDomain_054F595DEADE58D96D9EE3837CAAFBF4" 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_054F595DEADE58D96D9EE3837CAAFBF4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_SegmentGeographicalDomain_054F595DEADE58D96D9EE3837CAAFBF4" xlink:to="lab_srt_SegmentGeographicalDomain_054F595DEADE58D96D9EE3837CAAFBF4" xlink:type="arc" />
    <link:label id="lab_srt_EuropeMember_31C02C9063E2ED505827E3837CAAEB80_verboseLabel_en-US" xlink:label="lab_srt_EuropeMember_31C02C9063E2ED505827E3837CAAEB80" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Europe [Member]</link:label>
    <link:label id="lab_srt_EuropeMember_31C02C9063E2ED505827E3837CAAEB80_label_en-US" xlink:label="lab_srt_EuropeMember_31C02C9063E2ED505827E3837CAAEB80" 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_31C02C9063E2ED505827E3837CAAEB80" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_EuropeMember_31C02C9063E2ED505827E3837CAAEB80" xlink:to="lab_srt_EuropeMember_31C02C9063E2ED505827E3837CAAEB80" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_2765C5F1D69546D38031E3837CAB2FB9_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_2765C5F1D69546D38031E3837CAB2FB9" 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_2765C5F1D69546D38031E3837CAB2FB9_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_2765C5F1D69546D38031E3837CAB2FB9" 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_2765C5F1D69546D38031E3837CAB2FB9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_2765C5F1D69546D38031E3837CAB2FB9" xlink:to="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_2765C5F1D69546D38031E3837CAB2FB9" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755" 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_ADE52987F2386244E1EFE3837CAB1755_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755" 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_ADE52987F2386244E1EFE3837CAB1755" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755" xlink:to="lab_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755" xlink:type="arc" />
    <link:label id="lab_us-gaap_SalesRevenueNetMember_4AAC253D6D95721849B6E3837CAB4142_verboseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember_4AAC253D6D95721849B6E3837CAB4142" 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_4AAC253D6D95721849B6E3837CAB4142_label_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember_4AAC253D6D95721849B6E3837CAB4142" 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_4AAC253D6D95721849B6E3837CAB4142" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueNetMember_4AAC253D6D95721849B6E3837CAB4142" xlink:to="lab_us-gaap_SalesRevenueNetMember_4AAC253D6D95721849B6E3837CAB4142" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountsReceivableMember_1AD937F4649D233F0545E3D0B928A387_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember_1AD937F4649D233F0545E3D0B928A387" 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_1AD937F4649D233F0545E3D0B928A387_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember_1AD937F4649D233F0545E3D0B928A387" 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_1AD937F4649D233F0545E3D0B928A387" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableMember_1AD937F4649D233F0545E3D0B928A387" xlink:to="lab_us-gaap_AccountsReceivableMember_1AD937F4649D233F0545E3D0B928A387" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_8A7F82ABCA7D2039CE15E3837CAC5599_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis_8A7F82ABCA7D2039CE15E3837CAC5599" 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_8A7F82ABCA7D2039CE15E3837CAC5599_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis_8A7F82ABCA7D2039CE15E3837CAC5599" 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_8A7F82ABCA7D2039CE15E3837CAC5599" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_8A7F82ABCA7D2039CE15E3837CAC5599" xlink:to="lab_us-gaap_ConcentrationRiskByTypeAxis_8A7F82ABCA7D2039CE15E3837CAC5599" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_17BFAFA122A6FA11D4E7E3837CAC4433_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain_17BFAFA122A6FA11D4E7E3837CAC4433" 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_17BFAFA122A6FA11D4E7E3837CAC4433_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain_17BFAFA122A6FA11D4E7E3837CAC4433" 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_17BFAFA122A6FA11D4E7E3837CAC4433" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_17BFAFA122A6FA11D4E7E3837CAC4433" xlink:to="lab_us-gaap_ConcentrationRiskTypeDomain_17BFAFA122A6FA11D4E7E3837CAC4433" xlink:type="arc" />
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_572697A88B46BBD776AFE3837CACD641_verboseLabel_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember_572697A88B46BBD776AFE3837CACD641" 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_572697A88B46BBD776AFE3837CACD641_label_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember_572697A88B46BBD776AFE3837CACD641" 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_572697A88B46BBD776AFE3837CACD641" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerConcentrationRiskMember_572697A88B46BBD776AFE3837CACD641" xlink:to="lab_us-gaap_CustomerConcentrationRiskMember_572697A88B46BBD776AFE3837CACD641" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_B872747A2A6A576DCDE0E3837CACE94E_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems_B872747A2A6A576DCDE0E3837CACE94E" 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_B872747A2A6A576DCDE0E3837CACE94E_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems_B872747A2A6A576DCDE0E3837CACE94E" 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_B872747A2A6A576DCDE0E3837CACE94E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_B872747A2A6A576DCDE0E3837CACE94E" xlink:to="lab_us-gaap_ConcentrationRiskLineItems_B872747A2A6A576DCDE0E3837CACE94E" xlink:type="arc" />
    <link:label id="lab_us-gaap_NumberOfReportableSegments_C5E02612384035CD6EE3E3837CADDFCB_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments_C5E02612384035CD6EE3E3837CADDFCB" 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_C5E02612384035CD6EE3E3837CADDFCB_label_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments_C5E02612384035CD6EE3E3837CADDFCB" 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_C5E02612384035CD6EE3E3837CADDFCB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NumberOfReportableSegments_C5E02612384035CD6EE3E3837CADDFCB" xlink:to="lab_us-gaap_NumberOfReportableSegments_C5E02612384035CD6EE3E3837CADDFCB" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_BA9396513FB1B57852CFE3837CADFE23_verboseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1_BA9396513FB1B57852CFE3837CADFE23" 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_BA9396513FB1B57852CFE3837CADFE23_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1_BA9396513FB1B57852CFE3837CADFE23" 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_BA9396513FB1B57852CFE3837CADFE23" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskPercentage1_BA9396513FB1B57852CFE3837CADFE23" xlink:to="lab_us-gaap_ConcentrationRiskPercentage1_BA9396513FB1B57852CFE3837CADFE23" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountingStandardsUpdate201616Member_31D9F4AE21AF00D27D92E3837D42680C_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201616Member_31D9F4AE21AF00D27D92E3837D42680C" 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_31D9F4AE21AF00D27D92E3837D42680C_label_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201616Member_31D9F4AE21AF00D27D92E3837D42680C" 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_31D9F4AE21AF00D27D92E3837D42680C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingStandardsUpdate201616Member_31D9F4AE21AF00D27D92E3837D42680C" xlink:to="lab_us-gaap_AccountingStandardsUpdate201616Member_31D9F4AE21AF00D27D92E3837D42680C" xlink:type="arc" />
    <link:label id="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D_terseLabel_en-US" xlink:label="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" 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_EA1E2D151D232B6C8826E3837D42602D_label_en-US" xlink:label="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" 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_EA1E2D151D232B6C8826E3837D42602D_documentation_en-US" xlink:label="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" 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-20181231.xsd#cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" xlink:label="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" xlink:to="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" xlink:type="arc" />
    <link:label id="lab_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38_terseLabel_en-US" xlink:label="lab_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" 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_9907E003B81DA1DE1FA3E3837D438A38_label_en-US" xlink:label="lab_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" 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_9907E003B81DA1DE1FA3E3837D438A38_documentation_en-US" xlink:label="lab_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" 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-20181231.xsd#cgnx_OtherThantheU.SMember" xlink:label="loc_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" xlink:to="lab_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" xlink:type="arc" />
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAxis_F2B37EA5FBB536518E89E3837D466FA3_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAxis_F2B37EA5FBB536518E89E3837D466FA3" 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_F2B37EA5FBB536518E89E3837D466FA3_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAxis_F2B37EA5FBB536518E89E3837D466FA3" 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_F2B37EA5FBB536518E89E3837D466FA3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_F2B37EA5FBB536518E89E3837D466FA3" xlink:to="lab_us-gaap_TaxCreditCarryforwardAxis_F2B37EA5FBB536518E89E3837D466FA3" xlink:type="arc" />
    <link:label id="lab_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF" 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_B385BCA4674BB670BB55E3837D465FEF_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF" 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_B385BCA4674BB670BB55E3837D465FEF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF" xlink:to="lab_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF" xlink:type="arc" />
    <link:label id="lab_us-gaap_ResearchMember_9F1D9F6A5E04011855B6E3837D467651_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchMember_9F1D9F6A5E04011855B6E3837D467651" 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_9F1D9F6A5E04011855B6E3837D467651_label_en-US" xlink:label="lab_us-gaap_ResearchMember_9F1D9F6A5E04011855B6E3837D467651" 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_9F1D9F6A5E04011855B6E3837D467651" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchMember_9F1D9F6A5E04011855B6E3837D467651" xlink:to="lab_us-gaap_ResearchMember_9F1D9F6A5E04011855B6E3837D467651" xlink:type="arc" />
    <link:label id="lab_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588_terseLabel_en-US" xlink:label="lab_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" 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_43515F15108342DA07ECE3837D462588_label_en-US" xlink:label="lab_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" 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_43515F15108342DA07ECE3837D462588_documentation_en-US" xlink:label="lab_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" 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-20181231.xsd#cgnx_StateResearchAndExperimentationMember" xlink:label="loc_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" xlink:to="lab_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7DFF1865201467EB7D68E3837D47C096_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7DFF1865201467EB7D68E3837D47C096" 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_7DFF1865201467EB7D68E3837D47C096_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7DFF1865201467EB7D68E3837D47C096" 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_7DFF1865201467EB7D68E3837D47C096" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7DFF1865201467EB7D68E3837D47C096" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7DFF1865201467EB7D68E3837D47C096" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_D0FDAC58CB657DB7019AE3837D4794D7_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_D0FDAC58CB657DB7019AE3837D4794D7" 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_D0FDAC58CB657DB7019AE3837D4794D7_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_D0FDAC58CB657DB7019AE3837D4794D7" 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_D0FDAC58CB657DB7019AE3837D4794D7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_D0FDAC58CB657DB7019AE3837D4794D7" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_D0FDAC58CB657DB7019AE3837D4794D7" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7_terseLabel_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" 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_28D8DC623EDF2A79B5B2E3837D476BD7_label_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" 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_28D8DC623EDF2A79B5B2E3837D476BD7_documentation_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" 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-20181231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" xlink:to="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24_terseLabel_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" 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_7A141B7F5F676778DBE3E3837D475F24_label_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" 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_7A141B7F5F676778DBE3E3837D475F24_documentation_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" 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-20181231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" xlink:to="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17_terseLabel_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" 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_62AB3D63585EC0797698E3837D47FE17_label_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" 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_62AB3D63585EC0797698E3837D47FE17_documentation_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" 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-20181231.xsd#cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" xlink:to="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Decrease in tax expense</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43" 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, Amount</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43" xlink:to="lab_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B91A5AA15431E2285AC8E3837D480B94_verboseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B91A5AA15431E2285AC8E3837D480B94" 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_B91A5AA15431E2285AC8E3837D480B94_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B91A5AA15431E2285AC8E3837D480B94" 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_B91A5AA15431E2285AC8E3837D480B94" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B91A5AA15431E2285AC8E3837D480B94" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B91A5AA15431E2285AC8E3837D480B94" xlink:type="arc" />
    <link:label id="lab_us-gaap_Cash_3F4C3B513234D853A128E3837D4850F7_terseLabel_en-US" xlink:label="lab_us-gaap_Cash_3F4C3B513234D853A128E3837D4850F7" 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_3F4C3B513234D853A128E3837D4850F7_label_en-US" xlink:label="lab_us-gaap_Cash_3F4C3B513234D853A128E3837D4850F7" 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_3F4C3B513234D853A128E3837D4850F7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Cash_3F4C3B513234D853A128E3837D4850F7" xlink:to="lab_us-gaap_Cash_3F4C3B513234D853A128E3837D4850F7" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_93595AD2DD8EFCB0290EE3837D486F85_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_93595AD2DD8EFCB0290EE3837D486F85" 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_93595AD2DD8EFCB0290EE3837D486F85_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_93595AD2DD8EFCB0290EE3837D486F85" 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_93595AD2DD8EFCB0290EE3837D486F85" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_93595AD2DD8EFCB0290EE3837D486F85" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_93595AD2DD8EFCB0290EE3837D486F85" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_7AE7E32720860EB24BD4E3837D484582_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_7AE7E32720860EB24BD4E3837D484582" 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_7AE7E32720860EB24BD4E3837D484582_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_7AE7E32720860EB24BD4E3837D484582" 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_7AE7E32720860EB24BD4E3837D484582" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_7AE7E32720860EB24BD4E3837D484582" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_7AE7E32720860EB24BD4E3837D484582" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Other</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Other</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, State Taxes</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, State Taxes</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsStateTaxes" xlink:label="loc_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C" xlink:to="lab_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_0DCED24A46C4EB60E77DE3837D495BC5_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_0DCED24A46C4EB60E77DE3837D495BC5" 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_0DCED24A46C4EB60E77DE3837D495BC5_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_0DCED24A46C4EB60E77DE3837D495BC5" 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_0DCED24A46C4EB60E77DE3837D495BC5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_0DCED24A46C4EB60E77DE3837D495BC5" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_0DCED24A46C4EB60E77DE3837D495BC5" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_D9AC14F32FA3FF2945E4E3837D494A63_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_D9AC14F32FA3FF2945E4E3837D494A63" 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_D9AC14F32FA3FF2945E4E3837D494A63_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_D9AC14F32FA3FF2945E4E3837D494A63" 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_D9AC14F32FA3FF2945E4E3837D494A63" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_D9AC14F32FA3FF2945E4E3837D494A63" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_D9AC14F32FA3FF2945E4E3837D494A63" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_251BCDAA6FA72F6D6CBAE3837D499142_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_251BCDAA6FA72F6D6CBAE3837D499142" 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_251BCDAA6FA72F6D6CBAE3837D499142_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_251BCDAA6FA72F6D6CBAE3837D499142" 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_251BCDAA6FA72F6D6CBAE3837D499142" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_251BCDAA6FA72F6D6CBAE3837D499142" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_251BCDAA6FA72F6D6CBAE3837D499142" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_5C8A2569DD5C240794F4E3837D496C23_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_5C8A2569DD5C240794F4E3837D496C23" 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_5C8A2569DD5C240794F4E3837D496C23_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_5C8A2569DD5C240794F4E3837D496C23" 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_5C8A2569DD5C240794F4E3837D496C23" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_5C8A2569DD5C240794F4E3837D496C23" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_5C8A2569DD5C240794F4E3837D496C23" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_39991622501B98769EF3E3837D490EF5_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_39991622501B98769EF3E3837D490EF5" 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_39991622501B98769EF3E3837D490EF5_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_39991622501B98769EF3E3837D490EF5" 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_39991622501B98769EF3E3837D490EF5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_39991622501B98769EF3E3837D490EF5" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_39991622501B98769EF3E3837D490EF5" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3336071640301B42D5F7E3837D49D289_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3336071640301B42D5F7E3837D49D289" 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_3336071640301B42D5F7E3837D49D289_label_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3336071640301B42D5F7E3837D49D289" 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_3336071640301B42D5F7E3837D49D289" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3336071640301B42D5F7E3837D49D289" xlink:to="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3336071640301B42D5F7E3837D49D289" xlink:type="arc" />
    <link:label id="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9_terseLabel_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" 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_5EBB1A75FA88A5853BB2E3837D4A36A9_label_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" 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_5EBB1A75FA88A5853BB2E3837D4A36A9_documentation_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" 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-20181231.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" xlink:to="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_CDC114FAF4952D1D65FCE3837D4A3FC1_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_CDC114FAF4952D1D65FCE3837D4A3FC1" 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_CDC114FAF4952D1D65FCE3837D4A3FC1_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_CDC114FAF4952D1D65FCE3837D4A3FC1" 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_CDC114FAF4952D1D65FCE3837D4A3FC1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_CDC114FAF4952D1D65FCE3837D4A3FC1" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_CDC114FAF4952D1D65FCE3837D4A3FC1" xlink:type="arc" />
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788_terseLabel_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" 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_A72960C6B1C18EBA3788E3837D4AC788_label_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" 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_A72960C6B1C18EBA3788E3837D4AC788_documentation_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" 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-20181231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" xlink:to="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" xlink:type="arc" />
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6_terseLabel_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" 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_2DD564BCEADAF9B80399E3837D4AC2F6_label_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" 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_2DD564BCEADAF9B80399E3837D4AC2F6_documentation_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" 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-20181231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" xlink:to="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_3885215941B4C8E07DE1E3837D4F5F80_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_3885215941B4C8E07DE1E3837D4F5F80" 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: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_3885215941B4C8E07DE1E3837D4F5F80" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_3885215941B4C8E07DE1E3837D4F5F80" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_3885215941B4C8E07DE1E3837D4F5F80" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_159ACF539CDCDEA4360EE3837D506D94_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_159ACF539CDCDEA4360EE3837D506D94" 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: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_159ACF539CDCDEA4360EE3837D506D94" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_159ACF539CDCDEA4360EE3837D506D94" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_159ACF539CDCDEA4360EE3837D506D94" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_398B2463F471EB637335E3837D50DE47_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_398B2463F471EB637335E3837D50DE47" 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_398B2463F471EB637335E3837D50DE47_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_398B2463F471EB637335E3837D50DE47" 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_398B2463F471EB637335E3837D50DE47" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_398B2463F471EB637335E3837D50DE47" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_398B2463F471EB637335E3837D50DE47" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_D7DC92A7783E5A8CA107E3837D50EDC4_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet_D7DC92A7783E5A8CA107E3837D50EDC4" 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_D7DC92A7783E5A8CA107E3837D50EDC4_label_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet_D7DC92A7783E5A8CA107E3837D50EDC4" 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_D7DC92A7783E5A8CA107E3837D50EDC4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxesPaidNet_D7DC92A7783E5A8CA107E3837D50EDC4" xlink:to="lab_us-gaap_IncomeTaxesPaidNet_D7DC92A7783E5A8CA107E3837D50EDC4" xlink:type="arc" />
    <link:label id="lab_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4_terseLabel_en-US" xlink:label="lab_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" 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_F1424DEB843075A32B2CE3837D514BB4_label_en-US" xlink:label="lab_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" 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_F1424DEB843075A32B2CE3837D514BB4_documentation_en-US" xlink:label="lab_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" 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-20181231.xsd#cgnx_OpenTaxYearStateAuthorities" xlink:label="loc_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" xlink:to="lab_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" xlink:type="arc" />
    <link:label id="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4_terseLabel_en-US" xlink:label="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" 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_7EB9B1D91D02128E0640E3837D5103A4_label_en-US" xlink:label="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" 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_7EB9B1D91D02128E0640E3837D5103A4_documentation_en-US" xlink:label="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" 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-20181231.xsd#cgnx_OpentaxyearUnitedStatesInternalRevenueService" xlink:label="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" xlink:to="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" xlink:type="arc" />
    <link:label id="lab_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28_terseLabel_en-US" xlink:label="lab_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" 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_B713EF16E50A8BDD0A0DE3837D518C28_label_en-US" xlink:label="lab_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" 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_B713EF16E50A8BDD0A0DE3837D518C28_documentation_en-US" xlink:label="lab_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" 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-20181231.xsd#cgnx_Opentaxyearvarioustaxingauthorities" xlink:label="loc_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" xlink:to="lab_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD_terseLabel_en-US" xlink:label="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" 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_C70FD5BB060C6C51DE8CE3837D5147FD_label_en-US" xlink:label="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" 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_C70FD5BB060C6C51DE8CE3837D5147FD_documentation_en-US" xlink:label="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" 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-20181231.xsd#cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement" xlink:label="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" xlink:to="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1_terseLabel_en-US" xlink:label="lab_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" 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_1AE84AC081D0F5918D82E3837D51E9B1_label_en-US" xlink:label="lab_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" 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_1AE84AC081D0F5918D82E3837D51E9B1_documentation_en-US" xlink:label="lab_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" 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-20181231.xsd#cgnx_TaxyearsforAPAagreement" xlink:label="loc_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" xlink:to="lab_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" xlink:type="arc" />
    <link:label id="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB_terseLabel_en-US" xlink:label="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" 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_3E6DC965D70DA9744BEFE3837D512DDB_label_en-US" xlink:label="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" 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_3E6DC965D70DA9744BEFE3837D512DDB_documentation_en-US" xlink:label="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" 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-20181231.xsd#cgnx_Stateresearchandexperimentationtaxcarryforwards" xlink:label="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" xlink:to="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" xlink:type="arc" />
    <link:label id="lab_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_708AEAFD7797DA9746EFE3837D525908_terseLabel_en-US" xlink:label="lab_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_708AEAFD7797DA9746EFE3837D525908" 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_708AEAFD7797DA9746EFE3837D525908_label_en-US" xlink:label="lab_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_708AEAFD7797DA9746EFE3837D525908" 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_708AEAFD7797DA9746EFE3837D525908" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_708AEAFD7797DA9746EFE3837D525908" xlink:to="lab_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_708AEAFD7797DA9746EFE3837D525908" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_E4B8A33A033439FC857BFA5C217A5BBB_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_E4B8A33A033439FC857BFA5C217A5BBB" 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_E4B8A33A033439FC857BFA5C217A5BBB_label_en-US" xlink:label="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_E4B8A33A033439FC857BFA5C217A5BBB" 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_E4B8A33A033439FC857BFA5C217A5BBB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_E4B8A33A033439FC857BFA5C217A5BBB" xlink:to="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_E4B8A33A033439FC857BFA5C217A5BBB" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_FBF6D7B0631A32A294C6FA5C217B938B_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_FBF6D7B0631A32A294C6FA5C217B938B" 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_FBF6D7B0631A32A294C6FA5C217B938B_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_FBF6D7B0631A32A294C6FA5C217B938B" 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_FBF6D7B0631A32A294C6FA5C217B938B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_FBF6D7B0631A32A294C6FA5C217B938B" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_FBF6D7B0631A32A294C6FA5C217B938B" xlink:type="arc" />
    <link:label id="lab_us-gaap_OffsettingAssetsTableTextBlock_4DBC6E1AF6FE30C38CCAFA5C217B1F89_terseLabel_en-US" xlink:label="lab_us-gaap_OffsettingAssetsTableTextBlock_4DBC6E1AF6FE30C38CCAFA5C217B1F89" 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_4DBC6E1AF6FE30C38CCAFA5C217B1F89_label_en-US" xlink:label="lab_us-gaap_OffsettingAssetsTableTextBlock_4DBC6E1AF6FE30C38CCAFA5C217B1F89" 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_4DBC6E1AF6FE30C38CCAFA5C217B1F89" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OffsettingAssetsTableTextBlock_4DBC6E1AF6FE30C38CCAFA5C217B1F89" xlink:to="lab_us-gaap_OffsettingAssetsTableTextBlock_4DBC6E1AF6FE30C38CCAFA5C217B1F89" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_F6328EF24D2F9B541836FA5C217B2DCF_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_F6328EF24D2F9B541836FA5C217B2DCF" 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_F6328EF24D2F9B541836FA5C217B2DCF_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_F6328EF24D2F9B541836FA5C217B2DCF" 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_F6328EF24D2F9B541836FA5C217B2DCF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_F6328EF24D2F9B541836FA5C217B2DCF" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_F6328EF24D2F9B541836FA5C217B2DCF" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_3EBC6C22D1EEE2F27E32FA5C217B5769_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_3EBC6C22D1EEE2F27E32FA5C217B5769" 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_3EBC6C22D1EEE2F27E32FA5C217B5769_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_3EBC6C22D1EEE2F27E32FA5C217B5769" 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_3EBC6C22D1EEE2F27E32FA5C217B5769" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_3EBC6C22D1EEE2F27E32FA5C217B5769" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_3EBC6C22D1EEE2F27E32FA5C217B5769" xlink:type="arc" />
    <link:label id="lab_us-gaap_USTreasuryBillSecuritiesMember_4444A3C4C603ABF1472FE484A1D04C70_verboseLabel_en-US" xlink:label="lab_us-gaap_USTreasuryBillSecuritiesMember_4444A3C4C603ABF1472FE484A1D04C70" 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_4444A3C4C603ABF1472FE484A1D04C70_label_en-US" xlink:label="lab_us-gaap_USTreasuryBillSecuritiesMember_4444A3C4C603ABF1472FE484A1D04C70" 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_4444A3C4C603ABF1472FE484A1D04C70" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USTreasuryBillSecuritiesMember_4444A3C4C603ABF1472FE484A1D04C70" xlink:to="lab_us-gaap_USTreasuryBillSecuritiesMember_4444A3C4C603ABF1472FE484A1D04C70" xlink:type="arc" />
    <link:label id="lab_us-gaap_MoneyMarketFundsAtCarryingValue_9317022FA078A93DCF32E484A1D38381_terseLabel_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsAtCarryingValue_9317022FA078A93DCF32E484A1D38381" 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_9317022FA078A93DCF32E484A1D38381_label_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsAtCarryingValue_9317022FA078A93DCF32E484A1D38381" 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_9317022FA078A93DCF32E484A1D38381" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MoneyMarketFundsAtCarryingValue_9317022FA078A93DCF32E484A1D38381" xlink:to="lab_us-gaap_MoneyMarketFundsAtCarryingValue_9317022FA078A93DCF32E484A1D38381" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_59D3F3CE1A3DF58A38E8E484A1D3E08D_totalLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_59D3F3CE1A3DF58A38E8E484A1D3E08D" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_59D3F3CE1A3DF58A38E8E484A1D3E08D_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_59D3F3CE1A3DF58A38E8E484A1D3E08D" 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_59D3F3CE1A3DF58A38E8E484A1D3E08D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_59D3F3CE1A3DF58A38E8E484A1D3E08D" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_59D3F3CE1A3DF58A38E8E484A1D3E08D" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_7F309EF6037425F7715BE484A1D3D5C7_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_7F309EF6037425F7715BE484A1D3D5C7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Short-term investments</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_7F309EF6037425F7715BE484A1D3D5C7_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_7F309EF6037425F7715BE484A1D3D5C7" 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_7F309EF6037425F7715BE484A1D3D5C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_7F309EF6037425F7715BE484A1D3D5C7" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_7F309EF6037425F7715BE484A1D3D5C7" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_A75ABE187795F6B8C073E484A1D4FB81_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_A75ABE187795F6B8C073E484A1D4FB81" 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_A75ABE187795F6B8C073E484A1D4FB81_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_A75ABE187795F6B8C073E484A1D4FB81" 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_A75ABE187795F6B8C073E484A1D4FB81" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_A75ABE187795F6B8C073E484A1D4FB81" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_A75ABE187795F6B8C073E484A1D4FB81" xlink:type="arc" />
    <link:label id="lab_us-gaap_LongTermInvestments_68831B3DEC31FFECDA38E484A1D4F116_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermInvestments_68831B3DEC31FFECDA38E484A1D4F116" 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_LongTermInvestments_68831B3DEC31FFECDA38E484A1D4F116_label_en-US" xlink:label="lab_us-gaap_LongTermInvestments_68831B3DEC31FFECDA38E484A1D4F116" 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_68831B3DEC31FFECDA38E484A1D4F116" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermInvestments_68831B3DEC31FFECDA38E484A1D4F116" xlink:to="lab_us-gaap_LongTermInvestments_68831B3DEC31FFECDA38E484A1D4F116" xlink:type="arc" />
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB_totalLabel_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" 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_8536C860119BC26F9D68E484A1D424CB_label_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" 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_8536C860119BC26F9D68E484A1D424CB_documentation_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" 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-20181231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" xlink:to="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" xlink:type="arc" />
    <link:label id="lab_us-gaap_DesignatedAsHedgingInstrumentMember_42372A1DCA6D9593C8E4E4466A6A170C_terseLabel_en-US" xlink:label="lab_us-gaap_DesignatedAsHedgingInstrumentMember_42372A1DCA6D9593C8E4E4466A6A170C" 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_42372A1DCA6D9593C8E4E4466A6A170C_label_en-US" xlink:label="lab_us-gaap_DesignatedAsHedgingInstrumentMember_42372A1DCA6D9593C8E4E4466A6A170C" 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_42372A1DCA6D9593C8E4E4466A6A170C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DesignatedAsHedgingInstrumentMember_42372A1DCA6D9593C8E4E4466A6A170C" xlink:to="lab_us-gaap_DesignatedAsHedgingInstrumentMember_42372A1DCA6D9593C8E4E4466A6A170C" xlink:type="arc" />
    <link:label id="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_008CBFDC8A719E21F774E4466A6B5DAE_terseLabel_en-US" xlink:label="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_008CBFDC8A719E21F774E4466A6B5DAE" 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_008CBFDC8A719E21F774E4466A6B5DAE_label_en-US" xlink:label="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_008CBFDC8A719E21F774E4466A6B5DAE" 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_008CBFDC8A719E21F774E4466A6B5DAE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_008CBFDC8A719E21F774E4466A6B5DAE" xlink:to="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_008CBFDC8A719E21F774E4466A6B5DAE" xlink:type="arc" />
    <link:label id="lab_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_3CB8729D9CEB63FAC26BE4466A6BC301_terseLabel_en-US" xlink:label="lab_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_3CB8729D9CEB63FAC26BE4466A6BC301" 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_3CB8729D9CEB63FAC26BE4466A6BC301_label_en-US" xlink:label="lab_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_3CB8729D9CEB63FAC26BE4466A6BC301" 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_3CB8729D9CEB63FAC26BE4466A6BC301" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_3CB8729D9CEB63FAC26BE4466A6BC301" xlink:to="lab_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_3CB8729D9CEB63FAC26BE4466A6BC301" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_E638CB277A1C094CB823E48798CCC12D_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_E638CB277A1C094CB823E48798CCC12D" 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_E638CB277A1C094CB823E48798CCC12D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_E638CB277A1C094CB823E48798CCC12D" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_E638CB277A1C094CB823E48798CCC12D" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_A0CD7C6EE6BFFAF9E822E48798CCA458_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_A0CD7C6EE6BFFAF9E822E48798CCA458" 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_A0CD7C6EE6BFFAF9E822E48798CCA458_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_A0CD7C6EE6BFFAF9E822E48798CCA458" 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_A0CD7C6EE6BFFAF9E822E48798CCA458" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_A0CD7C6EE6BFFAF9E822E48798CCA458" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_A0CD7C6EE6BFFAF9E822E48798CCA458" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_731051A47CE97D13CB5DE48798CCE2C7_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_731051A47CE97D13CB5DE48798CCE2C7" 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_731051A47CE97D13CB5DE48798CCE2C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_731051A47CE97D13CB5DE48798CCE2C7" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_731051A47CE97D13CB5DE48798CCE2C7" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_832025F67CD38DC73C32E48798CD7CB3_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_832025F67CD38DC73C32E48798CD7CB3" 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_832025F67CD38DC73C32E48798CD7CB3_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_832025F67CD38DC73C32E48798CD7CB3" 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_832025F67CD38DC73C32E48798CD7CB3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_832025F67CD38DC73C32E48798CD7CB3" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_832025F67CD38DC73C32E48798CD7CB3" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_1E0FDD1E0EE3E830705EE48798CD77C2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_1E0FDD1E0EE3E830705EE48798CD77C2" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax benefit related to employee stock option exercises</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_1E0FDD1E0EE3E830705EE48798CD77C2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_1E0FDD1E0EE3E830705EE48798CD77C2" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_1E0FDD1E0EE3E830705EE48798CD77C2" xlink:type="arc" />
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax expense (benefit) related to 2017 Tax Act</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B" 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_2CE29762162C911F709CE48798CDB68B_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B" 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-20181231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_E285E2684D5FA0DC5B37E48798CDF320_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_E285E2684D5FA0DC5B37E48798CDF320" 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_E285E2684D5FA0DC5B37E48798CDF320_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_E285E2684D5FA0DC5B37E48798CDF320" 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_E285E2684D5FA0DC5B37E48798CDF320" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_E285E2684D5FA0DC5B37E48798CDF320" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_E285E2684D5FA0DC5B37E48798CDF320" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_225F80862B6C5515F85DE48798CDBBFA_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_225F80862B6C5515F85DE48798CDBBFA" 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_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_225F80862B6C5515F85DE48798CDBBFA_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_225F80862B6C5515F85DE48798CDBBFA" 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_225F80862B6C5515F85DE48798CDBBFA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_225F80862B6C5515F85DE48798CDBBFA" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_225F80862B6C5515F85DE48798CDBBFA" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_F70011A377697A6A1959E48798CEFE91_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_F70011A377697A6A1959E48798CEFE91" 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_F70011A377697A6A1959E48798CEFE91_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_F70011A377697A6A1959E48798CEFE91" 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_F70011A377697A6A1959E48798CEFE91" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_F70011A377697A6A1959E48798CEFE91" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_F70011A377697A6A1959E48798CEFE91" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_C71F8E8C1C2D0A3C5866E48798CEE7D1_totalLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_C71F8E8C1C2D0A3C5866E48798CEE7D1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income tax expense on continuing operations</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_C71F8E8C1C2D0A3C5866E48798CEE7D1_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_C71F8E8C1C2D0A3C5866E48798CEE7D1" 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_C71F8E8C1C2D0A3C5866E48798CEE7D1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_C71F8E8C1C2D0A3C5866E48798CEE7D1" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_C71F8E8C1C2D0A3C5866E48798CEE7D1" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsForPreviousAcquisition_B6233202DBC36AC11074FA5C20A33FBD_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsForPreviousAcquisition_B6233202DBC36AC11074FA5C20A33FBD" 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_B6233202DBC36AC11074FA5C20A33FBD_label_en-US" xlink:label="lab_us-gaap_PaymentsForPreviousAcquisition_B6233202DBC36AC11074FA5C20A33FBD" 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_B6233202DBC36AC11074FA5C20A33FBD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForPreviousAcquisition_B6233202DBC36AC11074FA5C20A33FBD" xlink:to="lab_us-gaap_PaymentsForPreviousAcquisition_B6233202DBC36AC11074FA5C20A33FBD" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration, current</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration, Liability, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTable_84F7206FF233199D23D5E3837F7B4B7A_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable_84F7206FF233199D23D5E3837F7B4B7A" 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_84F7206FF233199D23D5E3837F7B4B7A_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable_84F7206FF233199D23D5E3837F7B4B7A" 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_84F7206FF233199D23D5E3837F7B4B7A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_84F7206FF233199D23D5E3837F7B4B7A" xlink:to="lab_us-gaap_ScheduleOfGoodwillTable_84F7206FF233199D23D5E3837F7B4B7A" xlink:type="arc" />
    <link:label id="lab_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B_terseLabel_en-US" xlink:label="lab_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">EnShape GmbH [Member]</link:label>
    <link:label id="lab_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B_label_en-US" xlink:label="lab_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">EnShape GmbH [Member]</link:label>
    <link:label id="lab_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B_documentation_en-US" xlink:label="lab_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">EnShape GmbH [Member]</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EnShapeGmbHMember" xlink:label="loc_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" xlink:to="lab_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillLineItems_846B141FB4EAA8A1E9DBE3837F82FA31_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillLineItems_846B141FB4EAA8A1E9DBE3837F82FA31" 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_846B141FB4EAA8A1E9DBE3837F82FA31_label_en-US" xlink:label="lab_us-gaap_GoodwillLineItems_846B141FB4EAA8A1E9DBE3837F82FA31" 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_846B141FB4EAA8A1E9DBE3837F82FA31" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillLineItems_846B141FB4EAA8A1E9DBE3837F82FA31" xlink:to="lab_us-gaap_GoodwillLineItems_846B141FB4EAA8A1E9DBE3837F82FA31" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A" 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_5966181102F761940A94E3837F83293A_label_en-US" xlink:label="lab_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A" 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_5966181102F761940A94E3837F83293A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A" xlink:to="lab_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A" xlink:type="arc" />
    <link:label id="lab_us-gaap_Goodwill_C453030ABBD872DC7AE4E3837F83749D_periodStartLabel_en-US" xlink:label="lab_us-gaap_Goodwill_C453030ABBD872DC7AE4E3837F83749D" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Goodwill, Beginning 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_C453030ABBD872DC7AE4E3837F83749D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill_C453030ABBD872DC7AE4E3837F83749D" xlink:to="lab_us-gaap_Goodwill_C453030ABBD872DC7AE4E3837F83749D" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillAcquiredDuringPeriod_29171BFB9EC475851E64E3837F8376A5_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAcquiredDuringPeriod_29171BFB9EC475851E64E3837F8376A5" 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_29171BFB9EC475851E64E3837F8376A5_label_en-US" xlink:label="lab_us-gaap_GoodwillAcquiredDuringPeriod_29171BFB9EC475851E64E3837F8376A5" 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_29171BFB9EC475851E64E3837F8376A5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAcquiredDuringPeriod_29171BFB9EC475851E64E3837F8376A5" xlink:to="lab_us-gaap_GoodwillAcquiredDuringPeriod_29171BFB9EC475851E64E3837F8376A5" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill, adjustment</link:label>
    <link:label id="lab_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67_label_en-US" xlink:label="lab_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, 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_GoodwillPeriodIncreaseDecrease" xlink:label="loc_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67" xlink:to="lab_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67" xlink:type="arc" />
    <link:label id="lab_us-gaap_Goodwill_7E2F94F58FE4C8167C1BE3837F835F2D_periodEndLabel_en-US" xlink:label="lab_us-gaap_Goodwill_7E2F94F58FE4C8167C1BE3837F835F2D" 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_7E2F94F58FE4C8167C1BE3837F835F2D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill_7E2F94F58FE4C8167C1BE3837F835F2D" xlink:to="lab_us-gaap_Goodwill_7E2F94F58FE4C8167C1BE3837F835F2D" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_EF76CA0D100739E672A5E3837B3BBF21_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract_EF76CA0D100739E672A5E3837B3BBF21" 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_EF76CA0D100739E672A5E3837B3BBF21" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsAbstract_EF76CA0D100739E672A5E3837B3BBF21" xlink:to="lab_us-gaap_SubsequentEventsAbstract_EF76CA0D100739E672A5E3837B3BBF21" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventTable_49DE898B0F9663F0BF3CE3837B3B7F4D_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTable_49DE898B0F9663F0BF3CE3837B3B7F4D" 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_49DE898B0F9663F0BF3CE3837B3B7F4D_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTable_49DE898B0F9663F0BF3CE3837B3B7F4D" 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_49DE898B0F9663F0BF3CE3837B3B7F4D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTable_49DE898B0F9663F0BF3CE3837B3B7F4D" xlink:to="lab_us-gaap_SubsequentEventTable_49DE898B0F9663F0BF3CE3837B3B7F4D" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_EF8EFDC96784CA3CE898E3837B3BB70F_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis_EF8EFDC96784CA3CE898E3837B3BB70F" 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_EF8EFDC96784CA3CE898E3837B3BB70F_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis_EF8EFDC96784CA3CE898E3837B3BB70F" 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_EF8EFDC96784CA3CE898E3837B3BB70F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_EF8EFDC96784CA3CE898E3837B3BB70F" xlink:to="lab_us-gaap_SubsequentEventTypeAxis_EF8EFDC96784CA3CE898E3837B3BB70F" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_C0B187A76024540E4671E3837B3C74D2_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain_C0B187A76024540E4671E3837B3C74D2" 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_C0B187A76024540E4671E3837B3C74D2_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain_C0B187A76024540E4671E3837B3C74D2" 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_C0B187A76024540E4671E3837B3C74D2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_C0B187A76024540E4671E3837B3C74D2" xlink:to="lab_us-gaap_SubsequentEventTypeDomain_C0B187A76024540E4671E3837B3C74D2" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventMember_08D887031C7E68C74742E3837B3C314B_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventMember_08D887031C7E68C74742E3837B3C314B" 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_08D887031C7E68C74742E3837B3C314B_label_en-US" xlink:label="lab_us-gaap_SubsequentEventMember_08D887031C7E68C74742E3837B3C314B" 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_08D887031C7E68C74742E3837B3C314B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventMember_08D887031C7E68C74742E3837B3C314B" xlink:to="lab_us-gaap_SubsequentEventMember_08D887031C7E68C74742E3837B3C314B" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B" 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_161155272B109F3D9C42E3837B3C450B_label_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B" 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_161155272B109F3D9C42E3837B3C450B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B" xlink:to="lab_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B" xlink:type="arc" />
    <link:label id="lab_us-gaap_DividendsPayableAmountPerShare_16C5D9ED8F2DDCB6B132E3837B3DB400_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableAmountPerShare_16C5D9ED8F2DDCB6B132E3837B3DB400" 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_16C5D9ED8F2DDCB6B132E3837B3DB400_label_en-US" xlink:label="lab_us-gaap_DividendsPayableAmountPerShare_16C5D9ED8F2DDCB6B132E3837B3DB400" 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_16C5D9ED8F2DDCB6B132E3837B3DB400" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableAmountPerShare_16C5D9ED8F2DDCB6B132E3837B3DB400" xlink:to="lab_us-gaap_DividendsPayableAmountPerShare_16C5D9ED8F2DDCB6B132E3837B3DB400" xlink:type="arc" />
    <link:label id="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_AC782C6F0FD497701A84E3837B3D4175_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_AC782C6F0FD497701A84E3837B3D4175" 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_AC782C6F0FD497701A84E3837B3D4175_label_en-US" xlink:label="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_AC782C6F0FD497701A84E3837B3D4175" 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_AC782C6F0FD497701A84E3837B3D4175" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_AC782C6F0FD497701A84E3837B3D4175" xlink:to="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_AC782C6F0FD497701A84E3837B3D4175" xlink:type="arc" />
    <link:label id="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_E9FBA4AD101977401272E3837B3D6EF5_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_E9FBA4AD101977401272E3837B3D6EF5" 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_E9FBA4AD101977401272E3837B3D6EF5_label_en-US" xlink:label="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_E9FBA4AD101977401272E3837B3D6EF5" 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_E9FBA4AD101977401272E3837B3D6EF5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_E9FBA4AD101977401272E3837B3D6EF5" xlink:to="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_E9FBA4AD101977401272E3837B3D6EF5" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_542EF05B295A6430578EE38380A50FA6_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_542EF05B295A6430578EE38380A50FA6" 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_542EF05B295A6430578EE38380A50FA6_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_542EF05B295A6430578EE38380A50FA6" 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_542EF05B295A6430578EE38380A50FA6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_542EF05B295A6430578EE38380A50FA6" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_542EF05B295A6430578EE38380A50FA6" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_909D9F39EEA64C67B945E38380A727D4_terseLabel_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis_909D9F39EEA64C67B945E38380A727D4" 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_909D9F39EEA64C67B945E38380A727D4_label_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis_909D9F39EEA64C67B945E38380A727D4" 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_909D9F39EEA64C67B945E38380A727D4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_909D9F39EEA64C67B945E38380A727D4" xlink:to="lab_us-gaap_StatementEquityComponentsAxis_909D9F39EEA64C67B945E38380A727D4" xlink:type="arc" />
    <link:label id="lab_us-gaap_EquityComponentDomain_AC79417DEE10EB326B99E38380A78A4F_terseLabel_en-US" xlink:label="lab_us-gaap_EquityComponentDomain_AC79417DEE10EB326B99E38380A78A4F" 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_AC79417DEE10EB326B99E38380A78A4F_label_en-US" xlink:label="lab_us-gaap_EquityComponentDomain_AC79417DEE10EB326B99E38380A78A4F" 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_AC79417DEE10EB326B99E38380A78A4F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityComponentDomain_AC79417DEE10EB326B99E38380A78A4F" xlink:to="lab_us-gaap_EquityComponentDomain_AC79417DEE10EB326B99E38380A78A4F" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_6D197FFD717317FA1F0EE38380A883EF_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_6D197FFD717317FA1F0EE38380A883EF" 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_6D197FFD717317FA1F0EE38380A883EF_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_6D197FFD717317FA1F0EE38380A883EF" 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_6D197FFD717317FA1F0EE38380A883EF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_6D197FFD717317FA1F0EE38380A883EF" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_6D197FFD717317FA1F0EE38380A883EF" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" 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_57EE372DA40A74CBD22EE38380A862F2_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" 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_57EE372DA40A74CBD22EE38380A862F2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_6556C5AA9680B3551B5CE38380A8C9CB_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_6556C5AA9680B3551B5CE38380A8C9CB" 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_6556C5AA9680B3551B5CE38380A8C9CB_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_6556C5AA9680B3551B5CE38380A8C9CB" 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_6556C5AA9680B3551B5CE38380A8C9CB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_6556C5AA9680B3551B5CE38380A8C9CB" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_6556C5AA9680B3551B5CE38380A8C9CB" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_E1EFF3E9FA11CC03A4CBE38380A8E57D_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_E1EFF3E9FA11CC03A4CBE38380A8E57D" 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_E1EFF3E9FA11CC03A4CBE38380A8E57D_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_E1EFF3E9FA11CC03A4CBE38380A8E57D" 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_E1EFF3E9FA11CC03A4CBE38380A8E57D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_E1EFF3E9FA11CC03A4CBE38380A8E57D" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_E1EFF3E9FA11CC03A4CBE38380A8E57D" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_A35382E43763295F7901E38380A9FE5D_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_A35382E43763295F7901E38380A9FE5D" 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_A35382E43763295F7901E38380A9FE5D_label_en-US" xlink:label="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_A35382E43763295F7901E38380A9FE5D" 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_A35382E43763295F7901E38380A9FE5D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_A35382E43763295F7901E38380A9FE5D" xlink:to="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_A35382E43763295F7901E38380A9FE5D" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_E66EDE465680433E0E0AE38380A974AA_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_E66EDE465680433E0E0AE38380A974AA" 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_E66EDE465680433E0E0AE38380A974AA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_E66EDE465680433E0E0AE38380A974AA" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_E66EDE465680433E0E0AE38380A974AA" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_CA6C87029207B9D536CAE3837C9CCBAB_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_CA6C87029207B9D536CAE3837C9CCBAB" 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_CA6C87029207B9D536CAE3837C9CCBAB_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_CA6C87029207B9D536CAE3837C9CCBAB" 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_CA6C87029207B9D536CAE3837C9CCBAB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_CA6C87029207B9D536CAE3837C9CCBAB" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_CA6C87029207B9D536CAE3837C9CCBAB" xlink:type="arc" />
    <link:label id="lab_country_US_162C569630550C117710E3837C9DA5D0_terseLabel_en-US" xlink:label="lab_country_US_162C569630550C117710E3837C9DA5D0" 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_162C569630550C117710E3837C9DA5D0_label_en-US" xlink:label="lab_country_US_162C569630550C117710E3837C9DA5D0" 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_162C569630550C117710E3837C9DA5D0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_US_162C569630550C117710E3837C9DA5D0" xlink:to="lab_country_US_162C569630550C117710E3837C9DA5D0" xlink:type="arc" />
    <link:label id="lab_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A_verboseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A_label_en-US" xlink:label="lab_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" 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_EBB130ED13CAE0A1D31BE3837C9DCC2A_documentation_en-US" xlink:label="lab_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" 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-20181231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" xlink:to="lab_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" xlink:type="arc" />
    <link:label id="lab_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C_terseLabel_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" 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_5935A011F41263470630E3837C9D5C0C_label_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" 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_5935A011F41263470630E3837C9D5C0C_documentation_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" 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-20181231.xsd#cgnx_OtherGeographicAreaMember" xlink:label="loc_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" xlink:to="lab_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_6BE120AFA90433311805E3837C9D230A_terseLabel_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_6BE120AFA90433311805E3837C9D230A" 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_6BE120AFA90433311805E3837C9D230A_label_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_6BE120AFA90433311805E3837C9D230A" 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_6BE120AFA90433311805E3837C9D230A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_6BE120AFA90433311805E3837C9D230A" xlink:to="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_6BE120AFA90433311805E3837C9D230A" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_266569E54787556D0820E3837C9E65F1_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_266569E54787556D0820E3837C9E65F1" 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_266569E54787556D0820E3837C9E65F1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_266569E54787556D0820E3837C9E65F1" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_266569E54787556D0820E3837C9E65F1" xlink:type="arc" />
    <link:label id="lab_us-gaap_NoncurrentAssets_5BB1A55A3CC3733BD7B2E3837C9E920B_terseLabel_en-US" xlink:label="lab_us-gaap_NoncurrentAssets_5BB1A55A3CC3733BD7B2E3837C9E920B" 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_5BB1A55A3CC3733BD7B2E3837C9E920B_label_en-US" xlink:label="lab_us-gaap_NoncurrentAssets_5BB1A55A3CC3733BD7B2E3837C9E920B" 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_5BB1A55A3CC3733BD7B2E3837C9E920B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncurrentAssets_5BB1A55A3CC3733BD7B2E3837C9E920B" xlink:to="lab_us-gaap_NoncurrentAssets_5BB1A55A3CC3733BD7B2E3837C9E920B" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_9044EF04AAAB957B49E5E3837E904E28_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_9044EF04AAAB957B49E5E3837E904E28" 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_9044EF04AAAB957B49E5E3837E904E28_label_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_9044EF04AAAB957B49E5E3837E904E28" 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_9044EF04AAAB957B49E5E3837E904E28" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_9044EF04AAAB957B49E5E3837E904E28" xlink:to="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_9044EF04AAAB957B49E5E3837E904E28" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_1710C8C06CF97F47EDFFE3837E90D6E3_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_1710C8C06CF97F47EDFFE3837E90D6E3" 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_1710C8C06CF97F47EDFFE3837E90D6E3_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_1710C8C06CF97F47EDFFE3837E90D6E3" 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_1710C8C06CF97F47EDFFE3837E90D6E3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_1710C8C06CF97F47EDFFE3837E90D6E3" xlink:to="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_1710C8C06CF97F47EDFFE3837E90D6E3" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeAssets_9B73137156E3F754F730E3837E91AB2F_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets_9B73137156E3F754F730E3837E91AB2F" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net amount of assets presented</link:label>
    <link:label id="lab_us-gaap_DerivativeAssets_9B73137156E3F754F730E3837E91AB2F_label_en-US" xlink:label="lab_us-gaap_DerivativeAssets_9B73137156E3F754F730E3837E91AB2F" 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_9B73137156E3F754F730E3837E91AB2F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssets_9B73137156E3F754F730E3837E91AB2F" xlink:to="lab_us-gaap_DerivativeAssets_9B73137156E3F754F730E3837E91AB2F" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_3F813B71253871A05561E3837E916412_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_3F813B71253871A05561E3837E916412" 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_3F813B71253871A05561E3837E916412_label_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_3F813B71253871A05561E3837E916412" 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_3F813B71253871A05561E3837E916412" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_3F813B71253871A05561E3837E916412" xlink:to="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_3F813B71253871A05561E3837E916412" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_579E0CF9BB6912A94652E3837E913B3A_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_579E0CF9BB6912A94652E3837E913B3A" 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_579E0CF9BB6912A94652E3837E913B3A_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_579E0CF9BB6912A94652E3837E913B3A" 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_579E0CF9BB6912A94652E3837E913B3A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_579E0CF9BB6912A94652E3837E913B3A" xlink:to="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_579E0CF9BB6912A94652E3837E913B3A" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeLiabilities_39768A455921699B25DCE3837E914DE9_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities_39768A455921699B25DCE3837E914DE9" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net amount of liabilities presented</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilities_39768A455921699B25DCE3837E914DE9_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities_39768A455921699B25DCE3837E914DE9" 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_39768A455921699B25DCE3837E914DE9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilities_39768A455921699B25DCE3837E914DE9" xlink:to="lab_us-gaap_DerivativeLiabilities_39768A455921699B25DCE3837E914DE9" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_B2C8A8948FA6702F1B8AFA5C23EFBF8A_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_B2C8A8948FA6702F1B8AFA5C23EFBF8A" 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_B2C8A8948FA6702F1B8AFA5C23EFBF8A_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_B2C8A8948FA6702F1B8AFA5C23EFBF8A" 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_B2C8A8948FA6702F1B8AFA5C23EFBF8A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_B2C8A8948FA6702F1B8AFA5C23EFBF8A" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_B2C8A8948FA6702F1B8AFA5C23EFBF8A" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_08CAF89255C722B0ED75CD8D368A1E88_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_08CAF89255C722B0ED75CD8D368A1E88" 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_08CAF89255C722B0ED75CD8D368A1E88_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_08CAF89255C722B0ED75CD8D368A1E88" 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_08CAF89255C722B0ED75CD8D368A1E88" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_08CAF89255C722B0ED75CD8D368A1E88" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_08CAF89255C722B0ED75CD8D368A1E88" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078" 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_D7EB1939CBDC6FA5B3ACCD8D368A4078" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078" xlink:to="lab_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" 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_B151D29F77A7A69B578ACD8D368A04ED" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="lab_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashFlowHedgingMember_1B40DCFF4F76F73DBEB0CD8D368B2A9A_terseLabel_en-US" xlink:label="lab_us-gaap_CashFlowHedgingMember_1B40DCFF4F76F73DBEB0CD8D368B2A9A" 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_1B40DCFF4F76F73DBEB0CD8D368B2A9A_label_en-US" xlink:label="lab_us-gaap_CashFlowHedgingMember_1B40DCFF4F76F73DBEB0CD8D368B2A9A" 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_1B40DCFF4F76F73DBEB0CD8D368B2A9A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashFlowHedgingMember_1B40DCFF4F76F73DBEB0CD8D368B2A9A" xlink:to="lab_us-gaap_CashFlowHedgingMember_1B40DCFF4F76F73DBEB0CD8D368B2A9A" xlink:type="arc" />
    <link:label id="lab_us-gaap_SalesRevenueGoodsNetMember_4113C684929997FAC2AFCD8D368BBFE4_terseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueGoodsNetMember_4113C684929997FAC2AFCD8D368BBFE4" 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_4113C684929997FAC2AFCD8D368BBFE4_label_en-US" xlink:label="lab_us-gaap_SalesRevenueGoodsNetMember_4113C684929997FAC2AFCD8D368BBFE4" 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_4113C684929997FAC2AFCD8D368BBFE4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueGoodsNetMember_4113C684929997FAC2AFCD8D368BBFE4" xlink:to="lab_us-gaap_SalesRevenueGoodsNetMember_4113C684929997FAC2AFCD8D368BBFE4" xlink:type="arc" />
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_6E69F9E70DFDDA49E5CECD8D368B1E4D_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember_6E69F9E70DFDDA49E5CECD8D368B1E4D" 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_6E69F9E70DFDDA49E5CECD8D368B1E4D_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember_6E69F9E70DFDDA49E5CECD8D368B1E4D" 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_6E69F9E70DFDDA49E5CECD8D368B1E4D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpenseMember_6E69F9E70DFDDA49E5CECD8D368B1E4D" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpenseMember_6E69F9E70DFDDA49E5CECD8D368B1E4D" xlink:type="arc" />
    <link:label id="lab_us-gaap_GeneralAndAdministrativeExpenseMember_19870686205552BC6606CD8D368B11BD_terseLabel_en-US" xlink:label="lab_us-gaap_GeneralAndAdministrativeExpenseMember_19870686205552BC6606CD8D368B11BD" 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_19870686205552BC6606CD8D368B11BD_label_en-US" xlink:label="lab_us-gaap_GeneralAndAdministrativeExpenseMember_19870686205552BC6606CD8D368B11BD" 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_19870686205552BC6606CD8D368B11BD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GeneralAndAdministrativeExpenseMember_19870686205552BC6606CD8D368B11BD" xlink:to="lab_us-gaap_GeneralAndAdministrativeExpenseMember_19870686205552BC6606CD8D368B11BD" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyGainLossMember_D2F53AB7844F2CD5099FCD8D368CE6D9_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyGainLossMember_D2F53AB7844F2CD5099FCD8D368CE6D9" 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_D2F53AB7844F2CD5099FCD8D368CE6D9_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyGainLossMember_D2F53AB7844F2CD5099FCD8D368CE6D9" 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_D2F53AB7844F2CD5099FCD8D368CE6D9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyGainLossMember_D2F53AB7844F2CD5099FCD8D368CE6D9" xlink:to="lab_us-gaap_ForeignCurrencyGainLossMember_D2F53AB7844F2CD5099FCD8D368CE6D9" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" 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_1528C7077E7092F73ECBCD8D368DE5FF_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" 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_1528C7077E7092F73ECBCD8D368DE5FF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gains (losses) recorded in shareholders' equity (effective portion)</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32" 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, before Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_7DF8BD7322958C84EE7ACD8D368D5C24_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_7DF8BD7322958C84EE7ACD8D368D5C24" 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_7DF8BD7322958C84EE7ACD8D368D5C24_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_7DF8BD7322958C84EE7ACD8D368D5C24" 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_7DF8BD7322958C84EE7ACD8D368D5C24" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_7DF8BD7322958C84EE7ACD8D368D5C24" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_7DF8BD7322958C84EE7ACD8D368D5C24" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_3CB5BFC3B09DC1E0D749CD8D368E227A_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_3CB5BFC3B09DC1E0D749CD8D368E227A" 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_3CB5BFC3B09DC1E0D749CD8D368E227A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_3CB5BFC3B09DC1E0D749CD8D368E227A" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_3CB5BFC3B09DC1E0D749CD8D368E227A" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_A1A901E80B3AE8B18368CD8D368EDA06_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_A1A901E80B3AE8B18368CD8D368EDA06" 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_A1A901E80B3AE8B18368CD8D368EDA06_label_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_A1A901E80B3AE8B18368CD8D368EDA06" 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_A1A901E80B3AE8B18368CD8D368EDA06" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_A1A901E80B3AE8B18368CD8D368EDA06" xlink:to="lab_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_A1A901E80B3AE8B18368CD8D368EDA06" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNet_E741E94DC777DBC2CE7BCD8D368EE6CD_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNet_E741E94DC777DBC2CE7BCD8D368EE6CD" 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_E741E94DC777DBC2CE7BCD8D368EE6CD_label_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNet_E741E94DC777DBC2CE7BCD8D368EE6CD" 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_E741E94DC777DBC2CE7BCD8D368EE6CD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeGainLossOnDerivativeNet_E741E94DC777DBC2CE7BCD8D368EE6CD" xlink:to="lab_us-gaap_DerivativeGainLossOnDerivativeNet_E741E94DC777DBC2CE7BCD8D368EE6CD" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock_DB8FB56140D25DB1924EE3837C8BDFCC_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock_DB8FB56140D25DB1924EE3837C8BDFCC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Discontinued Operations</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock_DB8FB56140D25DB1924EE3837C8BDFCC_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock_DB8FB56140D25DB1924EE3837C8BDFCC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Groups, Including Discontinued Operations [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_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock" xlink:label="loc_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock_DB8FB56140D25DB1924EE3837C8BDFCC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock_DB8FB56140D25DB1924EE3837C8BDFCC" xlink:to="lab_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock_DB8FB56140D25DB1924EE3837C8BDFCC" xlink:type="arc" />
    <link:label id="lab_us-gaap_CapitalizedContractCostGross_433D93F180F8CA19F9ADE3BEBE5029FF_terseLabel_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostGross_433D93F180F8CA19F9ADE3BEBE5029FF" 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_433D93F180F8CA19F9ADE3BEBE5029FF_label_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostGross_433D93F180F8CA19F9ADE3BEBE5029FF" 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_433D93F180F8CA19F9ADE3BEBE5029FF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CapitalizedContractCostGross_433D93F180F8CA19F9ADE3BEBE5029FF" xlink:to="lab_us-gaap_CapitalizedContractCostGross_433D93F180F8CA19F9ADE3BEBE5029FF" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_D78732E779ACAFFEA14CE44D7A78B40B_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_D78732E779ACAFFEA14CE44D7A78B40B" 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_D78732E779ACAFFEA14CE44D7A78B40B_label_en-US" xlink:label="lab_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_D78732E779ACAFFEA14CE44D7A78B40B" 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_D78732E779ACAFFEA14CE44D7A78B40B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_D78732E779ACAFFEA14CE44D7A78B40B" xlink:to="lab_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_D78732E779ACAFFEA14CE44D7A78B40B" xlink:type="arc" />
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_3B4DB82B52B52DDB6F3CE3837E3DEA93_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_3B4DB82B52B52DDB6F3CE3837E3DEA93" 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_3B4DB82B52B52DDB6F3CE3837E3DEA93_label_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_3B4DB82B52B52DDB6F3CE3837E3DEA93" 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_3B4DB82B52B52DDB6F3CE3837E3DEA93" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_3B4DB82B52B52DDB6F3CE3837E3DEA93" xlink:to="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_3B4DB82B52B52DDB6F3CE3837E3DEA93" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedIncomeTaxesCurrent_A7639F298485A189EC1FE3837E3EEF6F_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesCurrent_A7639F298485A189EC1FE3837E3EEF6F" 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_A7639F298485A189EC1FE3837E3EEF6F_label_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesCurrent_A7639F298485A189EC1FE3837E3EEF6F" 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_A7639F298485A189EC1FE3837E3EEF6F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedIncomeTaxesCurrent_A7639F298485A189EC1FE3837E3EEF6F" xlink:to="lab_us-gaap_AccruedIncomeTaxesCurrent_A7639F298485A189EC1FE3837E3EEF6F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_B18918C1A1BB989B7E47E3837E3E46E0_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent_B18918C1A1BB989B7E47E3837E3E46E0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue and customer deposits</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_B18918C1A1BB989B7E47E3837E3E46E0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent_B18918C1A1BB989B7E47E3837E3E46E0" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent_B18918C1A1BB989B7E47E3837E3E46E0" xlink:type="arc" />
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_FF332A187D2D717DB228E3837E3E35E9_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit_FF332A187D2D717DB228E3837E3E35E9" 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_FF332A187D2D717DB228E3837E3E35E9_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit_FF332A187D2D717DB228E3837E3E35E9" 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_FF332A187D2D717DB228E3837E3E35E9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsAccumulatedDeficit_FF332A187D2D717DB228E3837E3E35E9" xlink:to="lab_us-gaap_RetainedEarningsAccumulatedDeficit_FF332A187D2D717DB228E3837E3E35E9" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_C399E7D5CFC6BDDEF951FA5C2182330D_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_C399E7D5CFC6BDDEF951FA5C2182330D" 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_C399E7D5CFC6BDDEF951FA5C2182330D_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_C399E7D5CFC6BDDEF951FA5C2182330D" 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_C399E7D5CFC6BDDEF951FA5C2182330D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_C399E7D5CFC6BDDEF951FA5C2182330D" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_C399E7D5CFC6BDDEF951FA5C2182330D" xlink:type="arc" />
    <link:label id="lab_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC_terseLabel_en-US" xlink:label="lab_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">AQSense, S.L. [Member]</link:label>
    <link:label id="lab_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC_label_en-US" xlink:label="lab_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">AQSense, S.L. [Member]</link:label>
    <link:label id="lab_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC_documentation_en-US" xlink:label="lab_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">AQSense, S.L. [Member]</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AQSenseS.L.Member" xlink:label="loc_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" xlink:to="lab_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryRawMaterialsNetOfReserves_FC9CF7688E726BAE6ABCFA5C251A0FD2_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves_FC9CF7688E726BAE6ABCFA5C251A0FD2" 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_FC9CF7688E726BAE6ABCFA5C251A0FD2_label_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves_FC9CF7688E726BAE6ABCFA5C251A0FD2" 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_FC9CF7688E726BAE6ABCFA5C251A0FD2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryRawMaterialsNetOfReserves_FC9CF7688E726BAE6ABCFA5C251A0FD2" xlink:to="lab_us-gaap_InventoryRawMaterialsNetOfReserves_FC9CF7688E726BAE6ABCFA5C251A0FD2" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_3F1691BDADF50848F3F0FA5C251AA28D_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves_3F1691BDADF50848F3F0FA5C251AA28D" 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_3F1691BDADF50848F3F0FA5C251AA28D_label_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves_3F1691BDADF50848F3F0FA5C251AA28D" 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_3F1691BDADF50848F3F0FA5C251AA28D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryWorkInProcessNetOfReserves_3F1691BDADF50848F3F0FA5C251AA28D" xlink:to="lab_us-gaap_InventoryWorkInProcessNetOfReserves_3F1691BDADF50848F3F0FA5C251AA28D" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_CB946B1377CBE7D8D22BFA5C251A96BF_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_CB946B1377CBE7D8D22BFA5C251A96BF" 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_CB946B1377CBE7D8D22BFA5C251A96BF_label_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_CB946B1377CBE7D8D22BFA5C251A96BF" 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_CB946B1377CBE7D8D22BFA5C251A96BF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_CB946B1377CBE7D8D22BFA5C251A96BF" xlink:to="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_CB946B1377CBE7D8D22BFA5C251A96BF" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryNet_21CC8E6A376C7147DD10FA5C251F5476_totalLabel_en-US" xlink:label="lab_us-gaap_InventoryNet_21CC8E6A376C7147DD10FA5C251F5476" 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_21CC8E6A376C7147DD10FA5C251F5476_label_en-US" xlink:label="lab_us-gaap_InventoryNet_21CC8E6A376C7147DD10FA5C251F5476" 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_21CC8E6A376C7147DD10FA5C251F5476" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNet_21CC8E6A376C7147DD10FA5C251F5476" xlink:to="lab_us-gaap_InventoryNet_21CC8E6A376C7147DD10FA5C251F5476" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_FA61DF051DE37ABB37D2FA5C231769DF_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_FA61DF051DE37ABB37D2FA5C231769DF" 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_FA61DF051DE37ABB37D2FA5C231769DF_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_FA61DF051DE37ABB37D2FA5C231769DF" 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_FA61DF051DE37ABB37D2FA5C231769DF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_FA61DF051DE37ABB37D2FA5C231769DF" xlink:to="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_FA61DF051DE37ABB37D2FA5C231769DF" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_C1941DC6AE15F29154CCFA5C2317F3D7_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_C1941DC6AE15F29154CCFA5C2317F3D7" 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_C1941DC6AE15F29154CCFA5C2317F3D7_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_C1941DC6AE15F29154CCFA5C2317F3D7" 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_C1941DC6AE15F29154CCFA5C2317F3D7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_C1941DC6AE15F29154CCFA5C2317F3D7" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_C1941DC6AE15F29154CCFA5C2317F3D7" xlink:type="arc" />
    <link:label id="lab_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F_terseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred cash payment on business acquisition</link:label>
    <link:label id="lab_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F_label_en-US" xlink:label="lab_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Consideration Transferred, Deferred Cash Payment</link:label>
    <link:label id="lab_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Consideration Transferred, Deferred Cash Payment</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment" xlink:label="loc_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" xlink:to="lab_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_1B7FAE48685187FFD3D5FA5C24B75A39_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_1B7FAE48685187FFD3D5FA5C24B75A39" 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_1B7FAE48685187FFD3D5FA5C24B75A39_label_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_1B7FAE48685187FFD3D5FA5C24B75A39" 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_1B7FAE48685187FFD3D5FA5C24B75A39" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_1B7FAE48685187FFD3D5FA5C24B75A39" xlink:to="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_1B7FAE48685187FFD3D5FA5C24B75A39" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_91EA6797AAC6330FB3D0FA5C24B7D532_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_91EA6797AAC6330FB3D0FA5C24B7D532" 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_91EA6797AAC6330FB3D0FA5C24B7D532_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_91EA6797AAC6330FB3D0FA5C24B7D532" 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_91EA6797AAC6330FB3D0FA5C24B7D532" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_91EA6797AAC6330FB3D0FA5C24B7D532" xlink:to="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_91EA6797AAC6330FB3D0FA5C24B7D532" xlink:type="arc" />
    <link:label id="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_631964B2B840A2D62473FA5C24B7EC8E_terseLabel_en-US" xlink:label="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_631964B2B840A2D62473FA5C24B7EC8E" 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_631964B2B840A2D62473FA5C24B7EC8E_label_en-US" xlink:label="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_631964B2B840A2D62473FA5C24B7EC8E" 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_631964B2B840A2D62473FA5C24B7EC8E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_631964B2B840A2D62473FA5C24B7EC8E" xlink:to="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_631964B2B840A2D62473FA5C24B7EC8E" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_FF3F08180AA195BDB464FA5C24B75386_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_FF3F08180AA195BDB464FA5C24B75386" 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_FF3F08180AA195BDB464FA5C24B75386_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_FF3F08180AA195BDB464FA5C24B75386" 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_FF3F08180AA195BDB464FA5C24B75386" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_FF3F08180AA195BDB464FA5C24B75386" xlink:to="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_FF3F08180AA195BDB464FA5C24B75386" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_E37796FC7AA2AD4B8DAEE4466AEFC29A_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_E37796FC7AA2AD4B8DAEE4466AEFC29A" 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_E37796FC7AA2AD4B8DAEE4466AEFC29A_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_E37796FC7AA2AD4B8DAEE4466AEFC29A" 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_E37796FC7AA2AD4B8DAEE4466AEFC29A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_E37796FC7AA2AD4B8DAEE4466AEFC29A" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_E37796FC7AA2AD4B8DAEE4466AEFC29A" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" 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_0EC98C4FCBB26BC26710E4466AEF0827_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" 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_0EC98C4FCBB26BC26710E4466AEF0827_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" 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-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" 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_A90A88AC40AB496C3981E4466AEFFD9D_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" 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_A90A88AC40AB496C3981E4466AEFFD9D_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" 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-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" 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_4488E8572E0FD556F64BE4466AEFB5B1_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" 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_4488E8572E0FD556F64BE4466AEFB5B1_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" 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-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" 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_8B4C54A45D2608B587CBE4466AEF4E94_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" 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_8B4C54A45D2608B587CBE4466AEF4E94_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" 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-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">5-7 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_6918716CB27DCE78B15EE4466AF05F4E_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_6918716CB27DCE78B15EE4466AF05F4E" 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_6918716CB27DCE78B15EE4466AF05F4E_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_6918716CB27DCE78B15EE4466AF05F4E" 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_6918716CB27DCE78B15EE4466AF05F4E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_6918716CB27DCE78B15EE4466AF05F4E" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_6918716CB27DCE78B15EE4466AF05F4E" xlink:type="arc" />
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_BE651D9E625B12E31BEDFA5C24D733FB_terseLabel_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock_BE651D9E625B12E31BEDFA5C24D733FB" 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_BE651D9E625B12E31BEDFA5C24D733FB_label_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock_BE651D9E625B12E31BEDFA5C24D733FB" 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_BE651D9E625B12E31BEDFA5C24D733FB_documentation_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock_BE651D9E625B12E31BEDFA5C24D733FB" 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-20181231.xsd#cgnx_IndemnificationProvisionsTextBlock" xlink:label="loc_cgnx_IndemnificationProvisionsTextBlock_BE651D9E625B12E31BEDFA5C24D733FB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IndemnificationProvisionsTextBlock_BE651D9E625B12E31BEDFA5C24D733FB" xlink:to="lab_cgnx_IndemnificationProvisionsTextBlock_BE651D9E625B12E31BEDFA5C24D733FB" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_1A4E78FDE59B60AE5DF7FA5C23CD2F69_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_1A4E78FDE59B60AE5DF7FA5C23CD2F69" 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_1A4E78FDE59B60AE5DF7FA5C23CD2F69_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_1A4E78FDE59B60AE5DF7FA5C23CD2F69" 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_1A4E78FDE59B60AE5DF7FA5C23CD2F69" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_1A4E78FDE59B60AE5DF7FA5C23CD2F69" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_1A4E78FDE59B60AE5DF7FA5C23CD2F69" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_1013E4C1B9A8D4F599AAE38380C3AB95_terseLabel_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_1013E4C1B9A8D4F599AAE38380C3AB95" 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_1013E4C1B9A8D4F599AAE38380C3AB95_label_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_1013E4C1B9A8D4F599AAE38380C3AB95" 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_1013E4C1B9A8D4F599AAE38380C3AB95_documentation_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_1013E4C1B9A8D4F599AAE38380C3AB95" 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-20181231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_1013E4C1B9A8D4F599AAE38380C3AB95" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_1013E4C1B9A8D4F599AAE38380C3AB95" xlink:to="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_1013E4C1B9A8D4F599AAE38380C3AB95" xlink:type="arc" />
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_42142AE67F2C0BFB24B7E38380C36D27_terseLabel_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_42142AE67F2C0BFB24B7E38380C36D27" 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_42142AE67F2C0BFB24B7E38380C36D27_label_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_42142AE67F2C0BFB24B7E38380C36D27" 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_42142AE67F2C0BFB24B7E38380C36D27_documentation_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_42142AE67F2C0BFB24B7E38380C36D27" 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-20181231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_42142AE67F2C0BFB24B7E38380C36D27" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_42142AE67F2C0BFB24B7E38380C36D27" xlink:to="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_42142AE67F2C0BFB24B7E38380C36D27" xlink:type="arc" />
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D_terseLabel_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" 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_E7FC6CE06AFAA78377C5E38380C4225D_label_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" 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_E7FC6CE06AFAA78377C5E38380C4225D_documentation_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" 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-20181231.xsd#cgnx_ComputerHardwareAndSoftwareMember" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" xlink:to="lab_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_9C605EA54327CA8D96DAE38380C6BC5E_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_9C605EA54327CA8D96DAE38380C6BC5E" 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_9C605EA54327CA8D96DAE38380C6BC5E_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_9C605EA54327CA8D96DAE38380C6BC5E" 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_9C605EA54327CA8D96DAE38380C6BC5E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_9C605EA54327CA8D96DAE38380C6BC5E" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_9C605EA54327CA8D96DAE38380C6BC5E" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_956D074935369588609EFA5C25A7D5B9_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract_956D074935369588609EFA5C25A7D5B9" 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_956D074935369588609EFA5C25A7D5B9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareAbstract_956D074935369588609EFA5C25A7D5B9" xlink:to="lab_us-gaap_EarningsPerShareAbstract_956D074935369588609EFA5C25A7D5B9" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_B7B1DC4634AA88F3C334FA5C25A76772_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_B7B1DC4634AA88F3C334FA5C25A76772" 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_B7B1DC4634AA88F3C334FA5C25A76772_label_en-US" xlink:label="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_B7B1DC4634AA88F3C334FA5C25A76772" 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_B7B1DC4634AA88F3C334FA5C25A76772" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_B7B1DC4634AA88F3C334FA5C25A76772" xlink:to="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_B7B1DC4634AA88F3C334FA5C25A76772" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_EB20C0AE90CA01CDAC25E3837F9AB6C3_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals_EB20C0AE90CA01CDAC25E3837F9AB6C3" 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_EB20C0AE90CA01CDAC25E3837F9AB6C3_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals_EB20C0AE90CA01CDAC25E3837F9AB6C3" 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_EB20C0AE90CA01CDAC25E3837F9AB6C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisposals_EB20C0AE90CA01CDAC25E3837F9AB6C3" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisposals_EB20C0AE90CA01CDAC25E3837F9AB6C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_702DBEE4C39E4B0BD31CE3837F9AEC19_terseLabel_en-US" xlink:label="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_702DBEE4C39E4B0BD31CE3837F9AEC19" 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_702DBEE4C39E4B0BD31CE3837F9AEC19_label_en-US" xlink:label="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_702DBEE4C39E4B0BD31CE3837F9AEC19" 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_702DBEE4C39E4B0BD31CE3837F9AEC19" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_702DBEE4C39E4B0BD31CE3837F9AEC19" xlink:to="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_702DBEE4C39E4B0BD31CE3837F9AEC19" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_2F77B36DF8BF9ABC130AE3837F9BD2C7_terseLabel_en-US" xlink:label="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_2F77B36DF8BF9ABC130AE3837F9BD2C7" 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_2F77B36DF8BF9ABC130AE3837F9BD2C7_label_en-US" xlink:label="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_2F77B36DF8BF9ABC130AE3837F9BD2C7" 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_2F77B36DF8BF9ABC130AE3837F9BD2C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_2F77B36DF8BF9ABC130AE3837F9BD2C7" xlink:to="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_2F77B36DF8BF9ABC130AE3837F9BD2C7" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_A3B4492BF6A4BDAB0E96FA5C209A2109_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_A3B4492BF6A4BDAB0E96FA5C209A2109" 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_A3B4492BF6A4BDAB0E96FA5C209A2109_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_A3B4492BF6A4BDAB0E96FA5C209A2109" 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_A3B4492BF6A4BDAB0E96FA5C209A2109" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_A3B4492BF6A4BDAB0E96FA5C209A2109" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_A3B4492BF6A4BDAB0E96FA5C209A2109" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_39A9365E634B38EB4786FA5C209B0F06_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_39A9365E634B38EB4786FA5C209B0F06" 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_39A9365E634B38EB4786FA5C209B0F06_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_39A9365E634B38EB4786FA5C209B0F06" 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_39A9365E634B38EB4786FA5C209B0F06" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_39A9365E634B38EB4786FA5C209B0F06" xlink:to="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_39A9365E634B38EB4786FA5C209B0F06" xlink:type="arc" />
    <link:label id="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_060B8FA5154ED17138B9FA5C209B2833_terseLabel_en-US" xlink:label="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_060B8FA5154ED17138B9FA5C209B2833" 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_060B8FA5154ED17138B9FA5C209B2833_label_en-US" xlink:label="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_060B8FA5154ED17138B9FA5C209B2833" 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_060B8FA5154ED17138B9FA5C209B2833" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_060B8FA5154ED17138B9FA5C209B2833" xlink:to="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_060B8FA5154ED17138B9FA5C209B2833" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_999AC705BDB7D4DFF684FA5C209B61B2_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_999AC705BDB7D4DFF684FA5C209B61B2" 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_999AC705BDB7D4DFF684FA5C209B61B2_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_999AC705BDB7D4DFF684FA5C209B61B2" 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_999AC705BDB7D4DFF684FA5C209B61B2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_999AC705BDB7D4DFF684FA5C209B61B2" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_999AC705BDB7D4DFF684FA5C209B61B2" xlink:type="arc" />
    <link:label id="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_F82C2B2286660E9D543CFA5C20801605_terseLabel_en-US" xlink:label="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_F82C2B2286660E9D543CFA5C20801605" 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_F82C2B2286660E9D543CFA5C20801605_label_en-US" xlink:label="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_F82C2B2286660E9D543CFA5C20801605" 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_F82C2B2286660E9D543CFA5C20801605" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_F82C2B2286660E9D543CFA5C20801605" xlink:to="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_F82C2B2286660E9D543CFA5C20801605" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesRentExpenseNet_4134A66FF96C489F2B73FA5C20806A39_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesRentExpenseNet_4134A66FF96C489F2B73FA5C20806A39" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total annual rental expense</link:label>
    <link:label id="lab_us-gaap_OperatingLeasesRentExpenseNet_4134A66FF96C489F2B73FA5C20806A39_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesRentExpenseNet_4134A66FF96C489F2B73FA5C20806A39" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Rent Expense, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="loc_us-gaap_OperatingLeasesRentExpenseNet_4134A66FF96C489F2B73FA5C20806A39" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesRentExpenseNet_4134A66FF96C489F2B73FA5C20806A39" xlink:to="lab_us-gaap_OperatingLeasesRentExpenseNet_4134A66FF96C489F2B73FA5C20806A39" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesIncomeStatementLeaseRevenue_19E9B1EF9ADF59C8CBF6FA5C20808C00_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesIncomeStatementLeaseRevenue_19E9B1EF9ADF59C8CBF6FA5C20808C00" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total annual rental income</link:label>
    <link:label id="lab_us-gaap_OperatingLeasesIncomeStatementLeaseRevenue_19E9B1EF9ADF59C8CBF6FA5C20808C00_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesIncomeStatementLeaseRevenue_19E9B1EF9ADF59C8CBF6FA5C20808C00" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Income Statement, Lease Revenue</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesIncomeStatementLeaseRevenue" xlink:label="loc_us-gaap_OperatingLeasesIncomeStatementLeaseRevenue_19E9B1EF9ADF59C8CBF6FA5C20808C00" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesIncomeStatementLeaseRevenue_19E9B1EF9ADF59C8CBF6FA5C20808C00" xlink:to="lab_us-gaap_OperatingLeasesIncomeStatementLeaseRevenue_19E9B1EF9ADF59C8CBF6FA5C20808C00" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_2BAF07191B64D46908CDFA5C2420D623_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock_2BAF07191B64D46908CDFA5C2420D623" 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_2BAF07191B64D46908CDFA5C2420D623_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock_2BAF07191B64D46908CDFA5C2420D623" 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_2BAF07191B64D46908CDFA5C2420D623" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureTextBlock_2BAF07191B64D46908CDFA5C2420D623" xlink:to="lab_us-gaap_IncomeTaxDisclosureTextBlock_2BAF07191B64D46908CDFA5C2420D623" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_30A36EA382EA482C6514E446692D9C8C_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_30A36EA382EA482C6514E446692D9C8C" 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_30A36EA382EA482C6514E446692D9C8C_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_30A36EA382EA482C6514E446692D9C8C" 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_30A36EA382EA482C6514E446692D9C8C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_30A36EA382EA482C6514E446692D9C8C" xlink:to="lab_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_30A36EA382EA482C6514E446692D9C8C" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetsAbstract_D73977654546E4218AC3E487780FA8C3_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsAbstract_D73977654546E4218AC3E487780FA8C3" 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_D73977654546E4218AC3E487780FA8C3_label_en-US" xlink:label="lab_us-gaap_AssetsAbstract_D73977654546E4218AC3E487780FA8C3" 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_D73977654546E4218AC3E487780FA8C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsAbstract_D73977654546E4218AC3E487780FA8C3" xlink:to="lab_us-gaap_AssetsAbstract_D73977654546E4218AC3E487780FA8C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_C686003556AA45038A9DE4877810BAE9_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract_C686003556AA45038A9DE4877810BAE9" 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_C686003556AA45038A9DE4877810BAE9_label_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract_C686003556AA45038A9DE4877810BAE9" 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_C686003556AA45038A9DE4877810BAE9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrentAbstract_C686003556AA45038A9DE4877810BAE9" xlink:to="lab_us-gaap_AssetsCurrentAbstract_C686003556AA45038A9DE4877810BAE9" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_8579EA7BF29DB4141692E4877810BE45_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_8579EA7BF29DB4141692E4877810BE45" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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_8579EA7BF29DB4141692E4877810BE45" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_8579EA7BF29DB4141692E4877810BE45" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_8579EA7BF29DB4141692E4877810BE45" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_EF73D2A67F16EDC88F0EE48778105128_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent_EF73D2A67F16EDC88F0EE48778105128" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable, less reserves of $1,646 and $1,568 in 2018 and 2017, respectively</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_EF73D2A67F16EDC88F0EE48778105128_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent_EF73D2A67F16EDC88F0EE48778105128" 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_EF73D2A67F16EDC88F0EE48778105128" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableNetCurrent_EF73D2A67F16EDC88F0EE48778105128" xlink:to="lab_us-gaap_AccountsReceivableNetCurrent_EF73D2A67F16EDC88F0EE48778105128" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_C015029BCD1BB4AC503CE4877811E1A9_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent_C015029BCD1BB4AC503CE4877811E1A9" 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_C015029BCD1BB4AC503CE4877811E1A9_label_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent_C015029BCD1BB4AC503CE4877811E1A9" 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_C015029BCD1BB4AC503CE4877811E1A9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledReceivablesCurrent_C015029BCD1BB4AC503CE4877811E1A9" xlink:to="lab_us-gaap_UnbilledReceivablesCurrent_C015029BCD1BB4AC503CE4877811E1A9" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryNet_9842F8188F69703D976FE48778113920_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryNet_9842F8188F69703D976FE48778113920" 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_9842F8188F69703D976FE48778113920" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNet_9842F8188F69703D976FE48778113920" xlink:to="lab_us-gaap_InventoryNet_9842F8188F69703D976FE48778113920" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetsCurrent_E855515F2F6609927D12E48778117588_totalLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrent_E855515F2F6609927D12E48778117588" 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_E855515F2F6609927D12E48778117588_label_en-US" xlink:label="lab_us-gaap_AssetsCurrent_E855515F2F6609927D12E48778117588" 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_E855515F2F6609927D12E48778117588" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrent_E855515F2F6609927D12E48778117588" xlink:to="lab_us-gaap_AssetsCurrent_E855515F2F6609927D12E48778117588" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_BEA5B266C7CCA7A4E8F2E4877812FF21_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet_BEA5B266C7CCA7A4E8F2E4877812FF21" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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_BEA5B266C7CCA7A4E8F2E4877812FF21" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_BEA5B266C7CCA7A4E8F2E4877812FF21" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNet_BEA5B266C7CCA7A4E8F2E4877812FF21" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_B8F1A740E96719A9213DE4877812B922_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet_B8F1A740E96719A9213DE4877812B922" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets, net</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_B8F1A740E96719A9213DE4877812B922_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet_B8F1A740E96719A9213DE4877812B922" 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_B8F1A740E96719A9213DE4877812B922" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_B8F1A740E96719A9213DE4877812B922" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsNet_B8F1A740E96719A9213DE4877812B922" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_B9174594AB73224C64DBE4877812DAF9_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_B9174594AB73224C64DBE4877812DAF9" 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_B9174594AB73224C64DBE4877812DAF9_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_B9174594AB73224C64DBE4877812DAF9" 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_B9174594AB73224C64DBE4877812DAF9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_B9174594AB73224C64DBE4877812DAF9" xlink:to="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_B9174594AB73224C64DBE4877812DAF9" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_978C3CA244E5EFA73AA3E4877812E30C_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent_978C3CA244E5EFA73AA3E4877812E30C" 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_978C3CA244E5EFA73AA3E4877812E30C_label_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent_978C3CA244E5EFA73AA3E4877812E30C" 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_978C3CA244E5EFA73AA3E4877812E30C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAssetsNoncurrent_978C3CA244E5EFA73AA3E4877812E30C" xlink:to="lab_us-gaap_OtherAssetsNoncurrent_978C3CA244E5EFA73AA3E4877812E30C" xlink:type="arc" />
    <link:label id="lab_us-gaap_Assets_3681CB4E35D156C3D8F1E4877812C574_totalLabel_en-US" xlink:label="lab_us-gaap_Assets_3681CB4E35D156C3D8F1E4877812C574" 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_3681CB4E35D156C3D8F1E4877812C574_label_en-US" xlink:label="lab_us-gaap_Assets_3681CB4E35D156C3D8F1E4877812C574" 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_3681CB4E35D156C3D8F1E4877812C574" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Assets_3681CB4E35D156C3D8F1E4877812C574" xlink:to="lab_us-gaap_Assets_3681CB4E35D156C3D8F1E4877812C574" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" 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_CFF8EE2DCB57C67AFB10E48778136CB2_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" 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_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_29625E5E3F078C308339E48778133F4F_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract_29625E5E3F078C308339E48778133F4F" 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_29625E5E3F078C308339E48778133F4F_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract_29625E5E3F078C308339E48778133F4F" 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_29625E5E3F078C308339E48778133F4F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_29625E5E3F078C308339E48778133F4F" xlink:to="lab_us-gaap_LiabilitiesCurrentAbstract_29625E5E3F078C308339E48778133F4F" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountsPayableCurrent_0E7A828756E7B4A0D0BAE48778133C38_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent_0E7A828756E7B4A0D0BAE48778133C38" 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_0E7A828756E7B4A0D0BAE48778133C38_label_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent_0E7A828756E7B4A0D0BAE48778133C38" 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_0E7A828756E7B4A0D0BAE48778133C38" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableCurrent_0E7A828756E7B4A0D0BAE48778133C38" xlink:to="lab_us-gaap_AccountsPayableCurrent_0E7A828756E7B4A0D0BAE48778133C38" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_0E441C678CF444D91823E48778131C75_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent_0E441C678CF444D91823E48778131C75" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_0E441C678CF444D91823E48778131C75_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent_0E441C678CF444D91823E48778131C75" 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_0E441C678CF444D91823E48778131C75" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_0E441C678CF444D91823E48778131C75" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrent_0E441C678CF444D91823E48778131C75" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesCurrent_3E87018F165EDE611281E4877814EDA8_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent_3E87018F165EDE611281E4877814EDA8" 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_3E87018F165EDE611281E4877814EDA8_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent_3E87018F165EDE611281E4877814EDA8" 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_3E87018F165EDE611281E4877814EDA8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrent_3E87018F165EDE611281E4877814EDA8" xlink:to="lab_us-gaap_LiabilitiesCurrent_3E87018F165EDE611281E4877814EDA8" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_A6911D76C7A8F92A5194E4877814E5B0_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_A6911D76C7A8F92A5194E4877814E5B0" 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_A6911D76C7A8F92A5194E4877814E5B0_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_A6911D76C7A8F92A5194E4877814E5B0" 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_A6911D76C7A8F92A5194E4877814E5B0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_A6911D76C7A8F92A5194E4877814E5B0" xlink:to="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_A6911D76C7A8F92A5194E4877814E5B0" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedIncomeTaxesNoncurrent_0266DCA1BA681759DB0FE48778159BDD_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesNoncurrent_0266DCA1BA681759DB0FE48778159BDD" 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_AccruedIncomeTaxesNoncurrent_0266DCA1BA681759DB0FE48778159BDD_label_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesNoncurrent_0266DCA1BA681759DB0FE48778159BDD" 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_0266DCA1BA681759DB0FE48778159BDD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedIncomeTaxesNoncurrent_0266DCA1BA681759DB0FE48778159BDD" xlink:to="lab_us-gaap_AccruedIncomeTaxesNoncurrent_0266DCA1BA681759DB0FE48778159BDD" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_3A3BB4904E16A77DD6E5E48778159B1F_terseLabel_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent_3A3BB4904E16A77DD6E5E48778159B1F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other non-current liabilities</link:label>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_3A3BB4904E16A77DD6E5E48778159B1F_label_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent_3A3BB4904E16A77DD6E5E48778159B1F" 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_3A3BB4904E16A77DD6E5E48778159B1F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherLiabilitiesNoncurrent_3A3BB4904E16A77DD6E5E48778159B1F" xlink:to="lab_us-gaap_OtherLiabilitiesNoncurrent_3A3BB4904E16A77DD6E5E48778159B1F" xlink:type="arc" />
    <link:label id="lab_us-gaap_Liabilities_4BD0DDC690224ABD44FAE4877815F964_totalLabel_en-US" xlink:label="lab_us-gaap_Liabilities_4BD0DDC690224ABD44FAE4877815F964" 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_4BD0DDC690224ABD44FAE4877815F964_label_en-US" xlink:label="lab_us-gaap_Liabilities_4BD0DDC690224ABD44FAE4877815F964" 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_4BD0DDC690224ABD44FAE4877815F964" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Liabilities_4BD0DDC690224ABD44FAE4877815F964" xlink:to="lab_us-gaap_Liabilities_4BD0DDC690224ABD44FAE4877815F964" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_A798137E670703620EF1E48778153550_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies_A798137E670703620EF1E48778153550" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and contingencies (Note 10)</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_A798137E670703620EF1E48778153550_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies_A798137E670703620EF1E48778153550" 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_A798137E670703620EF1E48778153550" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingencies_A798137E670703620EF1E48778153550" xlink:to="lab_us-gaap_CommitmentsAndContingencies_A798137E670703620EF1E48778153550" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_C1A66125BEC678CF7405E4877815CA73_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract_C1A66125BEC678CF7405E4877815CA73" 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_C1A66125BEC678CF7405E4877815CA73_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract_C1A66125BEC678CF7405E4877815CA73" 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_C1A66125BEC678CF7405E4877815CA73" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityAbstract_C1A66125BEC678CF7405E4877815CA73" xlink:to="lab_us-gaap_StockholdersEquityAbstract_C1A66125BEC678CF7405E4877815CA73" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockValueOutstanding_9E51A770B9564F8FEB93E4877815A33A_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockValueOutstanding_9E51A770B9564F8FEB93E4877815A33A" 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 and 200,000 shares in 2018 and 2017, respectively, issued and outstanding: 170,820 and 173,507 shares in 2018 and 2017, respectively</link:label>
    <link:label id="lab_us-gaap_CommonStockValueOutstanding_9E51A770B9564F8FEB93E4877815A33A_label_en-US" xlink:label="lab_us-gaap_CommonStockValueOutstanding_9E51A770B9564F8FEB93E4877815A33A" 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_9E51A770B9564F8FEB93E4877815A33A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockValueOutstanding_9E51A770B9564F8FEB93E4877815A33A" xlink:to="lab_us-gaap_CommonStockValueOutstanding_9E51A770B9564F8FEB93E4877815A33A" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalCommonStock_3ED520024EF577733D94E48778169290_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalCommonStock_3ED520024EF577733D94E48778169290" 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_3ED520024EF577733D94E48778169290_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalCommonStock_3ED520024EF577733D94E48778169290" 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_3ED520024EF577733D94E48778169290" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalCommonStock_3ED520024EF577733D94E48778169290" xlink:to="lab_us-gaap_AdditionalPaidInCapitalCommonStock_3ED520024EF577733D94E48778169290" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_2F7270118DFAAF304B42E48778168F3A_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_2F7270118DFAAF304B42E48778168F3A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated other comprehensive loss, net of tax</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_2F7270118DFAAF304B42E48778168F3A_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_2F7270118DFAAF304B42E48778168F3A" 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_2F7270118DFAAF304B42E48778168F3A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_2F7270118DFAAF304B42E48778168F3A" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_2F7270118DFAAF304B42E48778168F3A" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquity_04DD78BC9CC7C8B575F4E4877816704E_totalLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity_04DD78BC9CC7C8B575F4E4877816704E" 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_04DD78BC9CC7C8B575F4E4877816704E_label_en-US" xlink:label="lab_us-gaap_StockholdersEquity_04DD78BC9CC7C8B575F4E4877816704E" 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_04DD78BC9CC7C8B575F4E4877816704E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity_04DD78BC9CC7C8B575F4E4877816704E" xlink:to="lab_us-gaap_StockholdersEquity_04DD78BC9CC7C8B575F4E4877816704E" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_44C5F7AB80876CEB5493E4877816DB09_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity_44C5F7AB80876CEB5493E4877816DB09" 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_44C5F7AB80876CEB5493E4877816DB09_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity_44C5F7AB80876CEB5493E4877816DB09" 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_44C5F7AB80876CEB5493E4877816DB09" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_44C5F7AB80876CEB5493E4877816DB09" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquity_44C5F7AB80876CEB5493E4877816DB09" xlink:type="arc" />
    <link:label id="lab_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D_label_en-US" xlink:label="lab_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Documentand Entity Information [Abstract]</link:label>
    <link:label id="lab_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D_documentation_en-US" xlink:label="lab_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Document Documentand Entity Information [Abstract]</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_DocumentDocumentandEntityInformationAbstract" xlink:label="loc_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="lab_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:type="arc" />
    <link:label id="lab_dei_DocumentType_C320D9963422A46F7387E3513706A7BD_terseLabel_en-US" xlink:label="lab_dei_DocumentType_C320D9963422A46F7387E3513706A7BD" 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_C320D9963422A46F7387E3513706A7BD_label_en-US" xlink:label="lab_dei_DocumentType_C320D9963422A46F7387E3513706A7BD" 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/2018/dei-2018-01-31.xsd#dei_DocumentType" xlink:label="loc_dei_DocumentType_C320D9963422A46F7387E3513706A7BD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentType_C320D9963422A46F7387E3513706A7BD" xlink:to="lab_dei_DocumentType_C320D9963422A46F7387E3513706A7BD" xlink:type="arc" />
    <link:label id="lab_dei_AmendmentFlag_547C17D860221A029AB1E3513706AD37_terseLabel_en-US" xlink:label="lab_dei_AmendmentFlag_547C17D860221A029AB1E3513706AD37" 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_547C17D860221A029AB1E3513706AD37_label_en-US" xlink:label="lab_dei_AmendmentFlag_547C17D860221A029AB1E3513706AD37" 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/2018/dei-2018-01-31.xsd#dei_AmendmentFlag" xlink:label="loc_dei_AmendmentFlag_547C17D860221A029AB1E3513706AD37" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AmendmentFlag_547C17D860221A029AB1E3513706AD37" xlink:to="lab_dei_AmendmentFlag_547C17D860221A029AB1E3513706AD37" xlink:type="arc" />
    <link:label id="lab_dei_DocumentPeriodEndDate_F95A5926FCC7ED2E203DE3513707D9AF_terseLabel_en-US" xlink:label="lab_dei_DocumentPeriodEndDate_F95A5926FCC7ED2E203DE3513707D9AF" 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_F95A5926FCC7ED2E203DE3513707D9AF_label_en-US" xlink:label="lab_dei_DocumentPeriodEndDate_F95A5926FCC7ED2E203DE3513707D9AF" 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/2018/dei-2018-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_dei_DocumentPeriodEndDate_F95A5926FCC7ED2E203DE3513707D9AF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentPeriodEndDate_F95A5926FCC7ED2E203DE3513707D9AF" xlink:to="lab_dei_DocumentPeriodEndDate_F95A5926FCC7ED2E203DE3513707D9AF" xlink:type="arc" />
    <link:label id="lab_dei_DocumentFiscalYearFocus_3732B87C0348C8A11F4FE3513707972D_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus_3732B87C0348C8A11F4FE3513707972D" 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_3732B87C0348C8A11F4FE3513707972D_label_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus_3732B87C0348C8A11F4FE3513707972D" 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/2018/dei-2018-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="loc_dei_DocumentFiscalYearFocus_3732B87C0348C8A11F4FE3513707972D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalYearFocus_3732B87C0348C8A11F4FE3513707972D" xlink:to="lab_dei_DocumentFiscalYearFocus_3732B87C0348C8A11F4FE3513707972D" xlink:type="arc" />
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_3718773F618F59A99546E351370736F5_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus_3718773F618F59A99546E351370736F5" 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_3718773F618F59A99546E351370736F5_label_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus_3718773F618F59A99546E351370736F5" 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/2018/dei-2018-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="loc_dei_DocumentFiscalPeriodFocus_3718773F618F59A99546E351370736F5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalPeriodFocus_3718773F618F59A99546E351370736F5" xlink:to="lab_dei_DocumentFiscalPeriodFocus_3718773F618F59A99546E351370736F5" xlink:type="arc" />
    <link:label id="lab_dei_TradingSymbol_5940E669ADCBACAFD060E3513707FB40_terseLabel_en-US" xlink:label="lab_dei_TradingSymbol_5940E669ADCBACAFD060E3513707FB40" 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_5940E669ADCBACAFD060E3513707FB40_label_en-US" xlink:label="lab_dei_TradingSymbol_5940E669ADCBACAFD060E3513707FB40" 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/2018/dei-2018-01-31.xsd#dei_TradingSymbol" xlink:label="loc_dei_TradingSymbol_5940E669ADCBACAFD060E3513707FB40" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_TradingSymbol_5940E669ADCBACAFD060E3513707FB40" xlink:to="lab_dei_TradingSymbol_5940E669ADCBACAFD060E3513707FB40" xlink:type="arc" />
    <link:label id="lab_dei_EntityRegistrantName_595B2C892B53A4D55BA3E351370724C5_terseLabel_en-US" xlink:label="lab_dei_EntityRegistrantName_595B2C892B53A4D55BA3E351370724C5" 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_595B2C892B53A4D55BA3E351370724C5_label_en-US" xlink:label="lab_dei_EntityRegistrantName_595B2C892B53A4D55BA3E351370724C5" 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/2018/dei-2018-01-31.xsd#dei_EntityRegistrantName" xlink:label="loc_dei_EntityRegistrantName_595B2C892B53A4D55BA3E351370724C5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityRegistrantName_595B2C892B53A4D55BA3E351370724C5" xlink:to="lab_dei_EntityRegistrantName_595B2C892B53A4D55BA3E351370724C5" xlink:type="arc" />
    <link:label id="lab_dei_EntityCentralIndexKey_98E393996B89EA7FB76FE35137073C17_terseLabel_en-US" xlink:label="lab_dei_EntityCentralIndexKey_98E393996B89EA7FB76FE35137073C17" 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_98E393996B89EA7FB76FE35137073C17_label_en-US" xlink:label="lab_dei_EntityCentralIndexKey_98E393996B89EA7FB76FE35137073C17" 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/2018/dei-2018-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="loc_dei_EntityCentralIndexKey_98E393996B89EA7FB76FE35137073C17" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCentralIndexKey_98E393996B89EA7FB76FE35137073C17" xlink:to="lab_dei_EntityCentralIndexKey_98E393996B89EA7FB76FE35137073C17" xlink:type="arc" />
    <link:label id="lab_dei_CurrentFiscalYearEndDate_3CE2FC3F3A7B09338D20E35137087F4F_terseLabel_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate_3CE2FC3F3A7B09338D20E35137087F4F" 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_3CE2FC3F3A7B09338D20E35137087F4F_label_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate_3CE2FC3F3A7B09338D20E35137087F4F" 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/2018/dei-2018-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="loc_dei_CurrentFiscalYearEndDate_3CE2FC3F3A7B09338D20E35137087F4F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CurrentFiscalYearEndDate_3CE2FC3F3A7B09338D20E35137087F4F" xlink:to="lab_dei_CurrentFiscalYearEndDate_3CE2FC3F3A7B09338D20E35137087F4F" xlink:type="arc" />
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_D5CFA0ACC1E34A7CE506E3513708E58F_terseLabel_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer_D5CFA0ACC1E34A7CE506E3513708E58F" 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_D5CFA0ACC1E34A7CE506E3513708E58F_label_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer_D5CFA0ACC1E34A7CE506E3513708E58F" 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/2018/dei-2018-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_D5CFA0ACC1E34A7CE506E3513708E58F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityWellKnownSeasonedIssuer_D5CFA0ACC1E34A7CE506E3513708E58F" xlink:to="lab_dei_EntityWellKnownSeasonedIssuer_D5CFA0ACC1E34A7CE506E3513708E58F" xlink:type="arc" />
    <link:label id="lab_dei_EntityCurrentReportingStatus_BAA22EF6340A26607714E3513708653E_terseLabel_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus_BAA22EF6340A26607714E3513708653E" 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_BAA22EF6340A26607714E3513708653E_label_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus_BAA22EF6340A26607714E3513708653E" 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/2018/dei-2018-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="loc_dei_EntityCurrentReportingStatus_BAA22EF6340A26607714E3513708653E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCurrentReportingStatus_BAA22EF6340A26607714E3513708653E" xlink:to="lab_dei_EntityCurrentReportingStatus_BAA22EF6340A26607714E3513708653E" xlink:type="arc" />
    <link:label id="lab_dei_EntityVoluntaryFilers_60D53C4027860361192EE35137084EC3_terseLabel_en-US" xlink:label="lab_dei_EntityVoluntaryFilers_60D53C4027860361192EE35137084EC3" 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_60D53C4027860361192EE35137084EC3_label_en-US" xlink:label="lab_dei_EntityVoluntaryFilers_60D53C4027860361192EE35137084EC3" 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/2018/dei-2018-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="loc_dei_EntityVoluntaryFilers_60D53C4027860361192EE35137084EC3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityVoluntaryFilers_60D53C4027860361192EE35137084EC3" xlink:to="lab_dei_EntityVoluntaryFilers_60D53C4027860361192EE35137084EC3" xlink:type="arc" />
    <link:label id="lab_dei_EntityFilerCategory_087447916AEAB4D98E6DE35137086380_terseLabel_en-US" xlink:label="lab_dei_EntityFilerCategory_087447916AEAB4D98E6DE35137086380" 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_087447916AEAB4D98E6DE35137086380_label_en-US" xlink:label="lab_dei_EntityFilerCategory_087447916AEAB4D98E6DE35137086380" 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/2018/dei-2018-01-31.xsd#dei_EntityFilerCategory" xlink:label="loc_dei_EntityFilerCategory_087447916AEAB4D98E6DE35137086380" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFilerCategory_087447916AEAB4D98E6DE35137086380" xlink:to="lab_dei_EntityFilerCategory_087447916AEAB4D98E6DE35137086380" xlink:type="arc" />
    <link:label id="lab_dei_EntitySmallBusiness_56B616CE08C308BFA1FDE360F07607A5_terseLabel_en-US" xlink:label="lab_dei_EntitySmallBusiness_56B616CE08C308BFA1FDE360F07607A5" 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_56B616CE08C308BFA1FDE360F07607A5_label_en-US" xlink:label="lab_dei_EntitySmallBusiness_56B616CE08C308BFA1FDE360F07607A5" 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/2018/dei-2018-01-31.xsd#dei_EntitySmallBusiness" xlink:label="loc_dei_EntitySmallBusiness_56B616CE08C308BFA1FDE360F07607A5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntitySmallBusiness_56B616CE08C308BFA1FDE360F07607A5" xlink:to="lab_dei_EntitySmallBusiness_56B616CE08C308BFA1FDE360F07607A5" xlink:type="arc" />
    <link:label id="lab_dei_EntityEmergingGrowthCompany_619C46BAB0F639E758D1E363A009AB5C_terseLabel_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany_619C46BAB0F639E758D1E363A009AB5C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_619C46BAB0F639E758D1E363A009AB5C_label_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany_619C46BAB0F639E758D1E363A009AB5C" 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/2018/dei-2018-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_dei_EntityEmergingGrowthCompany_619C46BAB0F639E758D1E363A009AB5C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityEmergingGrowthCompany_619C46BAB0F639E758D1E363A009AB5C" xlink:to="lab_dei_EntityEmergingGrowthCompany_619C46BAB0F639E758D1E363A009AB5C" xlink:type="arc" />
    <link:label id="lab_dei_EntityShellCompany_11D45FBEC6A35854F274E363D5F4B219_terseLabel_en-US" xlink:label="lab_dei_EntityShellCompany_11D45FBEC6A35854F274E363D5F4B219" 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_11D45FBEC6A35854F274E363D5F4B219_label_en-US" xlink:label="lab_dei_EntityShellCompany_11D45FBEC6A35854F274E363D5F4B219" 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/2018/dei-2018-01-31.xsd#dei_EntityShellCompany" xlink:label="loc_dei_EntityShellCompany_11D45FBEC6A35854F274E363D5F4B219" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityShellCompany_11D45FBEC6A35854F274E363D5F4B219" xlink:to="lab_dei_EntityShellCompany_11D45FBEC6A35854F274E363D5F4B219" xlink:type="arc" />
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_A1387D03C63393AEE30EE351370812D8_terseLabel_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding_A1387D03C63393AEE30EE351370812D8" 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_A1387D03C63393AEE30EE351370812D8_label_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding_A1387D03C63393AEE30EE351370812D8" 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/2018/dei-2018-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_A1387D03C63393AEE30EE351370812D8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCommonStockSharesOutstanding_A1387D03C63393AEE30EE351370812D8" xlink:to="lab_dei_EntityCommonStockSharesOutstanding_A1387D03C63393AEE30EE351370812D8" xlink:type="arc" />
    <link:label id="lab_dei_EntityPublicFloat_B737CF89C0198C7E2A37E351370997C5_terseLabel_en-US" xlink:label="lab_dei_EntityPublicFloat_B737CF89C0198C7E2A37E351370997C5" 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_B737CF89C0198C7E2A37E351370997C5_label_en-US" xlink:label="lab_dei_EntityPublicFloat_B737CF89C0198C7E2A37E351370997C5" 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/2018/dei-2018-01-31.xsd#dei_EntityPublicFloat" xlink:label="loc_dei_EntityPublicFloat_B737CF89C0198C7E2A37E351370997C5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityPublicFloat_B737CF89C0198C7E2A37E351370997C5" xlink:to="lab_dei_EntityPublicFloat_B737CF89C0198C7E2A37E351370997C5" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_475FFF737A92C11637E5E38380D9B7CC_label_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract_475FFF737A92C11637E5E38380D9B7CC" 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_475FFF737A92C11637E5E38380D9B7CC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_475FFF737A92C11637E5E38380D9B7CC" xlink:to="lab_us-gaap_StatementOfStockholdersEquityAbstract_475FFF737A92C11637E5E38380D9B7CC" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_319A0F1465DECCDA81BBE38380D994B9_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_319A0F1465DECCDA81BBE38380D994B9" 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_319A0F1465DECCDA81BBE38380D994B9_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_319A0F1465DECCDA81BBE38380D994B9" 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_319A0F1465DECCDA81BBE38380D994B9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_319A0F1465DECCDA81BBE38380D994B9" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_319A0F1465DECCDA81BBE38380D994B9" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_5062790887A3B316A889E38380DA1453_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_5062790887A3B316A889E38380DA1453" 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_5062790887A3B316A889E38380DA1453_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_5062790887A3B316A889E38380DA1453" 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_5062790887A3B316A889E38380DA1453" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_5062790887A3B316A889E38380DA1453" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_5062790887A3B316A889E38380DA1453" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_AB0BAEF48E4CB6C77BA9E38380DA8A44_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_AB0BAEF48E4CB6C77BA9E38380DA8A44" 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_AB0BAEF48E4CB6C77BA9E38380DA8A44_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_AB0BAEF48E4CB6C77BA9E38380DA8A44" 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_AB0BAEF48E4CB6C77BA9E38380DA8A44" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_AB0BAEF48E4CB6C77BA9E38380DA8A44" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_AB0BAEF48E4CB6C77BA9E38380DA8A44" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_D804C2AB2DFC8C7321E8E3837F49710C_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_D804C2AB2DFC8C7321E8E3837F49710C" 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_D804C2AB2DFC8C7321E8E3837F49710C_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_D804C2AB2DFC8C7321E8E3837F49710C" 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_D804C2AB2DFC8C7321E8E3837F49710C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_D804C2AB2DFC8C7321E8E3837F49710C" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_D804C2AB2DFC8C7321E8E3837F49710C" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_C32C78CA4F5040C556D3E3837F49E52C_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_C32C78CA4F5040C556D3E3837F49E52C" 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_C32C78CA4F5040C556D3E3837F49E52C_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_C32C78CA4F5040C556D3E3837F49E52C" 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_C32C78CA4F5040C556D3E3837F49E52C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_C32C78CA4F5040C556D3E3837F49E52C" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_C32C78CA4F5040C556D3E3837F49E52C" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_8A5C3A043F1689FC5CC7E3837F4AC391_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_8A5C3A043F1689FC5CC7E3837F4AC391" 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_8A5C3A043F1689FC5CC7E3837F4AC391_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_8A5C3A043F1689FC5CC7E3837F4AC391" 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_8A5C3A043F1689FC5CC7E3837F4AC391" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_8A5C3A043F1689FC5CC7E3837F4AC391" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_8A5C3A043F1689FC5CC7E3837F4AC391" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_4669BF64336A02B5A677E3837F4ADA7C_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_4669BF64336A02B5A677E3837F4ADA7C" 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_4669BF64336A02B5A677E3837F4ADA7C_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_4669BF64336A02B5A677E3837F4ADA7C" 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_4669BF64336A02B5A677E3837F4ADA7C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_4669BF64336A02B5A677E3837F4ADA7C" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_4669BF64336A02B5A677E3837F4ADA7C" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_43AA13AB80F8EFDA0BE1E3837F4AB12F_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_43AA13AB80F8EFDA0BE1E3837F4AB12F" 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_43AA13AB80F8EFDA0BE1E3837F4AB12F_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_43AA13AB80F8EFDA0BE1E3837F4AB12F" 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_43AA13AB80F8EFDA0BE1E3837F4AB12F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_43AA13AB80F8EFDA0BE1E3837F4AB12F" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_43AA13AB80F8EFDA0BE1E3837F4AB12F" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_E3D9D903204ECE5A74C6E3837F4A5C6B_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_E3D9D903204ECE5A74C6E3837F4A5C6B" 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_E3D9D903204ECE5A74C6E3837F4A5C6B_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_E3D9D903204ECE5A74C6E3837F4A5C6B" 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_E3D9D903204ECE5A74C6E3837F4A5C6B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_E3D9D903204ECE5A74C6E3837F4A5C6B" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_E3D9D903204ECE5A74C6E3837F4A5C6B" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_B2D5FF3F59DBBC0931C8E3837F4AEF23_totalLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet_B2D5FF3F59DBBC0931C8E3837F4AEF23" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net Carrying Value</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_B2D5FF3F59DBBC0931C8E3837F4AEF23" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_B2D5FF3F59DBBC0931C8E3837F4AEF23" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsNet_B2D5FF3F59DBBC0931C8E3837F4AEF23" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Net Gain (Loss) from Designated or Qualifying Cash Flow Hedges [Member]</link:label>
    <link:label id="lab_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7_label_en-US" xlink:label="lab_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Net Gain (Loss) from Cash Flow Hedges 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_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember" xlink:label="loc_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7" xlink:to="lab_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7" xlink:type="arc" />
    <link:label id="lab_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A_terseLabel_en-US" xlink:label="lab_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" 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_3A13550226DCF2F7CE2CE4875E86079A_label_en-US" xlink:label="lab_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" 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_3A13550226DCF2F7CE2CE4875E86079A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" xlink:to="lab_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_80F5066218EDAD317773E4875E87162D_periodStartLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_80F5066218EDAD317773E4875E87162D" 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_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_80F5066218EDAD317773E4875E87162D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_80F5066218EDAD317773E4875E87162D" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_80F5066218EDAD317773E4875E87162D" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized gain on cash flow hedges</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">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_OtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7" xlink:type="arc" />
    <link:label id="lab_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494_terseLabel_en-US" xlink:label="lab_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reclassification of net realized gain on cash flow hedges into current operations</link:label>
    <link:label id="lab_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494_label_en-US" xlink:label="lab_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reclassification from Accumulated Other Comprehensive Income, Current 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_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax" xlink:label="loc_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494" xlink:to="lab_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_FFEC917F376679B9CF68E4875E8A20EF_periodEndLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_FFEC917F376679B9CF68E4875E8A20EF" 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_FFEC917F376679B9CF68E4875E8A20EF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_FFEC917F376679B9CF68E4875E8A20EF" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_FFEC917F376679B9CF68E4875E8A20EF" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_8D7571BF9214C7455BE5E4875E8BB47D_verboseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_8D7571BF9214C7455BE5E4875E8BB47D" 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_8D7571BF9214C7455BE5E4875E8BB47D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_8D7571BF9214C7455BE5E4875E8BB47D" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_8D7571BF9214C7455BE5E4875E8BB47D" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_279ECA11C7A8F0B66683E44668EB313E_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_279ECA11C7A8F0B66683E44668EB313E" 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_279ECA11C7A8F0B66683E44668EB313E_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_279ECA11C7A8F0B66683E44668EB313E" 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_279ECA11C7A8F0B66683E44668EB313E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_279ECA11C7A8F0B66683E44668EB313E" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_279ECA11C7A8F0B66683E44668EB313E" xlink:type="arc" />
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A_negatedTerseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Accrued income taxes</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A_label_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" 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, Income Tax Payable</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" 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, Income Tax Payable</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" xlink:to="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" xlink:type="arc" />
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_1D2FFCEAC12D0CC0DFEBE3837CC23841_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_1D2FFCEAC12D0CC0DFEBE3837CC23841" 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_1D2FFCEAC12D0CC0DFEBE3837CC23841" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_1D2FFCEAC12D0CC0DFEBE3837CC23841" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_1D2FFCEAC12D0CC0DFEBE3837CC23841" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_45B16A028932B304D1BFE3837E263091_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable_45B16A028932B304D1BFE3837E263091" 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_45B16A028932B304D1BFE3837E263091_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable_45B16A028932B304D1BFE3837E263091" 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_45B16A028932B304D1BFE3837E263091" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_45B16A028932B304D1BFE3837E263091" xlink:to="lab_us-gaap_DisaggregationOfRevenueTable_45B16A028932B304D1BFE3837E263091" xlink:type="arc" />
    <link:label id="lab_srt_AmericasMember_8007103EF3E96326E1B5E3837E288D3D_terseLabel_en-US" xlink:label="lab_srt_AmericasMember_8007103EF3E96326E1B5E3837E288D3D" 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_8007103EF3E96326E1B5E3837E288D3D_label_en-US" xlink:label="lab_srt_AmericasMember_8007103EF3E96326E1B5E3837E288D3D" 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_8007103EF3E96326E1B5E3837E288D3D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_AmericasMember_8007103EF3E96326E1B5E3837E288D3D" xlink:to="lab_srt_AmericasMember_8007103EF3E96326E1B5E3837E288D3D" xlink:type="arc" />
    <link:label id="lab_srt_EuropeMember_34DD253CEF7EE654BB63E3837E29C0F1_terseLabel_en-US" xlink:label="lab_srt_EuropeMember_34DD253CEF7EE654BB63E3837E29C0F1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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_34DD253CEF7EE654BB63E3837E29C0F1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_EuropeMember_34DD253CEF7EE654BB63E3837E29C0F1" xlink:to="lab_srt_EuropeMember_34DD253CEF7EE654BB63E3837E29C0F1" xlink:type="arc" />
    <link:label id="lab_cgnx_GreaterChinaMember_2278F49C283DD1AAB033E3837E29867A_terseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember_2278F49C283DD1AAB033E3837E29867A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_2278F49C283DD1AAB033E3837E29867A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GreaterChinaMember_2278F49C283DD1AAB033E3837E29867A" xlink:to="lab_cgnx_GreaterChinaMember_2278F49C283DD1AAB033E3837E29867A" xlink:type="arc" />
    <link:label id="lab_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907_terseLabel_en-US" xlink:label="lab_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" 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_9F1CCF0B0D10EA49CA70E3837E293907_label_en-US" xlink:label="lab_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" 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_9F1CCF0B0D10EA49CA70E3837E293907_documentation_en-US" xlink:label="lab_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" 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-20181231.xsd#cgnx_OtherAsiaMember" xlink:label="loc_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" xlink:to="lab_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" xlink:type="arc" />
    <link:label id="lab_srt_ProductOrServiceAxis_BF0134427077EE89A708E3837E29AE81_terseLabel_en-US" xlink:label="lab_srt_ProductOrServiceAxis_BF0134427077EE89A708E3837E29AE81" 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_BF0134427077EE89A708E3837E29AE81_label_en-US" xlink:label="lab_srt_ProductOrServiceAxis_BF0134427077EE89A708E3837E29AE81" 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_BF0134427077EE89A708E3837E29AE81" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductOrServiceAxis_BF0134427077EE89A708E3837E29AE81" xlink:to="lab_srt_ProductOrServiceAxis_BF0134427077EE89A708E3837E29AE81" xlink:type="arc" />
    <link:label id="lab_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34_terseLabel_en-US" xlink:label="lab_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34" 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_B4F482C80A8CFC276CC7E3837E293B34_label_en-US" xlink:label="lab_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34" 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_B4F482C80A8CFC276CC7E3837E293B34" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34" xlink:to="lab_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34" xlink:type="arc" />
    <link:label id="lab_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A_terseLabel_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" 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_CCE852199953126B2F8BE3837E2A2E5A_label_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" 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_CCE852199953126B2F8BE3837E2A2E5A_documentation_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" 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-20181231.xsd#cgnx_StandardProductandServicesMember" xlink:label="loc_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" xlink:to="lab_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" xlink:type="arc" />
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB_terseLabel_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" 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_87239DAF89F3A224290DE3837E2A36BB_label_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" 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_87239DAF89F3A224290DE3837E2A36BB_documentation_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" 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-20181231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" xlink:to="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_2739769F525E0568074FE3837E2A7293_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems_2739769F525E0568074FE3837E2A7293" 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_2739769F525E0568074FE3837E2A7293_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems_2739769F525E0568074FE3837E2A7293" 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_2739769F525E0568074FE3837E2A7293" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2739769F525E0568074FE3837E2A7293" xlink:to="lab_us-gaap_DisaggregationOfRevenueLineItems_2739769F525E0568074FE3837E2A7293" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_3E18F815EFF092322221FA5C253CFD40_verboseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_3E18F815EFF092322221FA5C253CFD40" 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_3E18F815EFF092322221FA5C253CFD40" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_3E18F815EFF092322221FA5C253CFD40" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_3E18F815EFF092322221FA5C253CFD40" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_C7A3D8A9A2596F98EA30FA5C253C880B_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_C7A3D8A9A2596F98EA30FA5C253C880B" 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_C7A3D8A9A2596F98EA30FA5C253C880B_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_C7A3D8A9A2596F98EA30FA5C253C880B" 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_C7A3D8A9A2596F98EA30FA5C253C880B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_C7A3D8A9A2596F98EA30FA5C253C880B" xlink:to="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_C7A3D8A9A2596F98EA30FA5C253C880B" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_5725445FCC2FBDEE2A43FA5C253C2116_totalLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_5725445FCC2FBDEE2A43FA5C253C2116" 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_5725445FCC2FBDEE2A43FA5C253C2116" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_5725445FCC2FBDEE2A43FA5C253C2116" xlink:to="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_5725445FCC2FBDEE2A43FA5C253C2116" xlink:type="arc" />
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_E08810DBD86FC682D73FE44668B4FAFD_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_E08810DBD86FC682D73FE44668B4FAFD" 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_E08810DBD86FC682D73FE44668B4FAFD_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_E08810DBD86FC682D73FE44668B4FAFD" 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_E08810DBD86FC682D73FE44668B4FAFD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_E08810DBD86FC682D73FE44668B4FAFD" xlink:to="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_E08810DBD86FC682D73FE44668B4FAFD" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_D21CBEF75B4BEEEA304BE44668B5929D_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_D21CBEF75B4BEEEA304BE44668B5929D" 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_D21CBEF75B4BEEEA304BE44668B5929D_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_D21CBEF75B4BEEEA304BE44668B5929D" 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_D21CBEF75B4BEEEA304BE44668B5929D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_D21CBEF75B4BEEEA304BE44668B5929D" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_D21CBEF75B4BEEEA304BE44668B5929D" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1" 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_933DE7F34622F40053EBE44668B5DAC1_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1" 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_933DE7F34622F40053EBE44668B5DAC1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1" xlink:type="arc" />
    <link:label id="lab_us-gaap_UncollectibleReceivablesMember_26E67E7BB4F94B057B1EE44668B5062F_terseLabel_en-US" xlink:label="lab_us-gaap_UncollectibleReceivablesMember_26E67E7BB4F94B057B1EE44668B5062F" 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_26E67E7BB4F94B057B1EE44668B5062F_label_en-US" xlink:label="lab_us-gaap_UncollectibleReceivablesMember_26E67E7BB4F94B057B1EE44668B5062F" 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_26E67E7BB4F94B057B1EE44668B5062F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UncollectibleReceivablesMember_26E67E7BB4F94B057B1EE44668B5062F" xlink:to="lab_us-gaap_UncollectibleReceivablesMember_26E67E7BB4F94B057B1EE44668B5062F" xlink:type="arc" />
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_A15C84144502626821EEE44668B69883_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_A15C84144502626821EEE44668B69883" 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_A15C84144502626821EEE44668B69883_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_A15C84144502626821EEE44668B69883" 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_A15C84144502626821EEE44668B69883" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_A15C84144502626821EEE44668B69883" xlink:to="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_A15C84144502626821EEE44668B69883" xlink:type="arc" />
    <link:label id="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" 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_4B370D360BB35F5CCAC4E44668B6A498_label_en-US" xlink:label="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" 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_4B370D360BB35F5CCAC4E44668B6A498" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_13B1246EFDEDC822C9E9E44668B650C8_periodStartLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance_13B1246EFDEDC822C9E9E44668B650C8" 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_13B1246EFDEDC822C9E9E44668B650C8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesBalance_13B1246EFDEDC822C9E9E44668B650C8" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesBalance_13B1246EFDEDC822C9E9E44668B650C8" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_0CF81DDBFFC1970FD433E44668B6CF4B_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_0CF81DDBFFC1970FD433E44668B6CF4B" 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_0CF81DDBFFC1970FD433E44668B6CF4B_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_0CF81DDBFFC1970FD433E44668B6CF4B" 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_0CF81DDBFFC1970FD433E44668B6CF4B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_0CF81DDBFFC1970FD433E44668B6CF4B" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_0CF81DDBFFC1970FD433E44668B6CF4B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDeductions_5F726B7B3323EF70EE83E44668B754C7_negatedLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDeductions_5F726B7B3323EF70EE83E44668B754C7" 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_5F726B7B3323EF70EE83E44668B754C7_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDeductions_5F726B7B3323EF70EE83E44668B754C7" 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_5F726B7B3323EF70EE83E44668B754C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDeductions_5F726B7B3323EF70EE83E44668B754C7" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesDeductions_5F726B7B3323EF70EE83E44668B754C7" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_817F6ADA1D04A0CEBD0BE44668B7D7D5_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_817F6ADA1D04A0CEBD0BE44668B7D7D5" 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_817F6ADA1D04A0CEBD0BE44668B7D7D5_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_817F6ADA1D04A0CEBD0BE44668B7D7D5" 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_817F6ADA1D04A0CEBD0BE44668B7D7D5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_817F6ADA1D04A0CEBD0BE44668B7D7D5" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_817F6ADA1D04A0CEBD0BE44668B7D7D5" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_5593F65F349C03919C12E44668B745B9_periodEndLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance_5593F65F349C03919C12E44668B745B9" 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_5593F65F349C03919C12E44668B745B9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesBalance_5593F65F349C03919C12E44668B745B9" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesBalance_5593F65F349C03919C12E44668B745B9" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3903FADCA09840C32227E38380B79EC6_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3903FADCA09840C32227E38380B79EC6" 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_3903FADCA09840C32227E38380B79EC6_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3903FADCA09840C32227E38380B79EC6" 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_3903FADCA09840C32227E38380B79EC6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3903FADCA09840C32227E38380B79EC6" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3903FADCA09840C32227E38380B79EC6" xlink:type="arc" />
    <link:label id="lab_us-gaap_DistributionRightsMember_686F9BD224DD7989C89DE38380B8A8A1_verboseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember_686F9BD224DD7989C89DE38380B8A8A1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Distribution Rights [Member]</link:label>
    <link:label id="lab_us-gaap_DistributionRightsMember_686F9BD224DD7989C89DE38380B8A8A1_label_en-US" xlink:label="lab_us-gaap_DistributionRightsMember_686F9BD224DD7989C89DE38380B8A8A1" 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_686F9BD224DD7989C89DE38380B8A8A1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DistributionRightsMember_686F9BD224DD7989C89DE38380B8A8A1" xlink:to="lab_us-gaap_DistributionRightsMember_686F9BD224DD7989C89DE38380B8A8A1" xlink:type="arc" />
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41_terseLabel_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" 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_F5CEB585485692457BF6E38380B89F41_label_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" 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_F5CEB585485692457BF6E38380B89F41_documentation_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" 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-20181231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" xlink:to="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" xlink:type="arc" />
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173_verboseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" 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_E0188CAF3F4755FA6386E38380B86173_label_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" 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_E0188CAF3F4755FA6386E38380B86173_documentation_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" 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-20181231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" xlink:to="lab_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" xlink:type="arc" />
    <link:label id="lab_us-gaap_NoncompeteAgreementsMember_69F3ABF45ED0B91CE003E38380B8A708_verboseLabel_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember_69F3ABF45ED0B91CE003E38380B8A708" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" 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_69F3ABF45ED0B91CE003E38380B8A708" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncompeteAgreementsMember_69F3ABF45ED0B91CE003E38380B8A708" xlink:to="lab_us-gaap_NoncompeteAgreementsMember_69F3ABF45ED0B91CE003E38380B8A708" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_6D92D25F767B697487BDE38380B958E4_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_6D92D25F767B697487BDE38380B958E4" 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_6D92D25F767B697487BDE38380B958E4_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_6D92D25F767B697487BDE38380B958E4" 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_6D92D25F767B697487BDE38380B958E4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6D92D25F767B697487BDE38380B958E4" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_6D92D25F767B697487BDE38380B958E4" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_A1CBF306016A877921C8E38380BA3AD3_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_A1CBF306016A877921C8E38380BA3AD3" 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_A1CBF306016A877921C8E38380BA3AD3_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_A1CBF306016A877921C8E38380BA3AD3" 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_A1CBF306016A877921C8E38380BA3AD3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_A1CBF306016A877921C8E38380BA3AD3" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_A1CBF306016A877921C8E38380BA3AD3" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_62C5E5DFB630FD2336A2FA5C22B40746_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_62C5E5DFB630FD2336A2FA5C22B40746" 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_62C5E5DFB630FD2336A2FA5C22B40746_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_62C5E5DFB630FD2336A2FA5C22B40746" 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_62C5E5DFB630FD2336A2FA5C22B40746" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_62C5E5DFB630FD2336A2FA5C22B40746" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_62C5E5DFB630FD2336A2FA5C22B40746" xlink:type="arc" />
    <link:label id="lab_us-gaap_DiscontinuedOperationsPolicyTextBlock_310ED3FFC19BC795AB28FA5C252205E1_terseLabel_en-US" xlink:label="lab_us-gaap_DiscontinuedOperationsPolicyTextBlock_310ED3FFC19BC795AB28FA5C252205E1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discontinued Operations</link:label>
    <link:label id="lab_us-gaap_DiscontinuedOperationsPolicyTextBlock_310ED3FFC19BC795AB28FA5C252205E1_label_en-US" xlink:label="lab_us-gaap_DiscontinuedOperationsPolicyTextBlock_310ED3FFC19BC795AB28FA5C252205E1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Discontinued Operations, 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_DiscontinuedOperationsPolicyTextBlock" xlink:label="loc_us-gaap_DiscontinuedOperationsPolicyTextBlock_310ED3FFC19BC795AB28FA5C252205E1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DiscontinuedOperationsPolicyTextBlock_310ED3FFC19BC795AB28FA5C252205E1" xlink:to="lab_us-gaap_DiscontinuedOperationsPolicyTextBlock_310ED3FFC19BC795AB28FA5C252205E1" xlink:type="arc" />
    <link:label id="lab_cgnx_DueFromForeignBanks_F8805806260449D3F7BFE48463E8F2F9_terseLabel_en-US" xlink:label="lab_cgnx_DueFromForeignBanks_F8805806260449D3F7BFE48463E8F2F9" 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_F8805806260449D3F7BFE48463E8F2F9_label_en-US" xlink:label="lab_cgnx_DueFromForeignBanks_F8805806260449D3F7BFE48463E8F2F9" 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_F8805806260449D3F7BFE48463E8F2F9_documentation_en-US" xlink:label="lab_cgnx_DueFromForeignBanks_F8805806260449D3F7BFE48463E8F2F9" 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-20181231.xsd#cgnx_DueFromForeignBanks" xlink:label="loc_cgnx_DueFromForeignBanks_F8805806260449D3F7BFE48463E8F2F9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DueFromForeignBanks_F8805806260449D3F7BFE48463E8F2F9" xlink:to="lab_cgnx_DueFromForeignBanks_F8805806260449D3F7BFE48463E8F2F9" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_4894F8559E641DC831E3E48463E89DA9_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_4894F8559E641DC831E3E48463E89DA9" 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_4894F8559E641DC831E3E48463E89DA9_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_4894F8559E641DC831E3E48463E89DA9" 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_4894F8559E641DC831E3E48463E89DA9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_4894F8559E641DC831E3E48463E89DA9" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_4894F8559E641DC831E3E48463E89DA9" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_6EFD7BA1E57895005C69E48463E8FE51_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_6EFD7BA1E57895005C69E48463E8FE51" 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_6EFD7BA1E57895005C69E48463E8FE51_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_6EFD7BA1E57895005C69E48463E8FE51" 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_6EFD7BA1E57895005C69E48463E8FE51" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_6EFD7BA1E57895005C69E48463E8FE51" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_6EFD7BA1E57895005C69E48463E8FE51" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_45A82A475E2AE605C401FA5C21A44282_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock_45A82A475E2AE605C401FA5C21A44282" 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_45A82A475E2AE605C401FA5C21A44282_label_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock_45A82A475E2AE605C401FA5C21A44282" 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_45A82A475E2AE605C401FA5C21A44282" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillDisclosureTextBlock_45A82A475E2AE605C401FA5C21A44282" xlink:to="lab_us-gaap_GoodwillDisclosureTextBlock_45A82A475E2AE605C401FA5C21A44282" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_374CA037E0A434BE9857B9B05A2BCB99_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_374CA037E0A434BE9857B9B05A2BCB99" 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_374CA037E0A434BE9857B9B05A2BCB99_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_374CA037E0A434BE9857B9B05A2BCB99" 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_374CA037E0A434BE9857B9B05A2BCB99" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_374CA037E0A434BE9857B9B05A2BCB99" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_374CA037E0A434BE9857B9B05A2BCB99" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_536E7B392B71EEF31E99B9B05A2C0867_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_536E7B392B71EEF31E99B9B05A2C0867" 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_536E7B392B71EEF31E99B9B05A2C0867_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_536E7B392B71EEF31E99B9B05A2C0867" 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_536E7B392B71EEF31E99B9B05A2C0867" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_536E7B392B71EEF31E99B9B05A2C0867" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_536E7B392B71EEF31E99B9B05A2C0867" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" 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_D951D94E2ED05DB7E967B9B05A2CCAAF_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" 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_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_A7B04BA8B4B849578E6BB9B05A2D51AE_periodStartLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_A7B04BA8B4B849578E6BB9B05A2D51AE" 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_A7B04BA8B4B849578E6BB9B05A2D51AE_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_A7B04BA8B4B849578E6BB9B05A2D51AE" 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_A7B04BA8B4B849578E6BB9B05A2D51AE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_A7B04BA8B4B849578E6BB9B05A2D51AE" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_A7B04BA8B4B849578E6BB9B05A2D51AE" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration resulting from acquisitions</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E" 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, Purchases</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesFairValueAdjustment_F1F97329B712955806CBB9B05A2D62AB_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueAdjustment_F1F97329B712955806CBB9B05A2D62AB" 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_F1F97329B712955806CBB9B05A2D62AB_label_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueAdjustment_F1F97329B712955806CBB9B05A2D62AB" 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_F1F97329B712955806CBB9B05A2D62AB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesFairValueAdjustment_F1F97329B712955806CBB9B05A2D62AB" xlink:to="lab_us-gaap_LiabilitiesFairValueAdjustment_F1F97329B712955806CBB9B05A2D62AB" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_E82288B2EE7BFF1D0836B9B05A2DC638_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_E82288B2EE7BFF1D0836B9B05A2DC638" 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_E82288B2EE7BFF1D0836B9B05A2DC638_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_E82288B2EE7BFF1D0836B9B05A2DC638" 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_E82288B2EE7BFF1D0836B9B05A2DC638" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_E82288B2EE7BFF1D0836B9B05A2DC638" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_E82288B2EE7BFF1D0836B9B05A2DC638" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payment of GVi contingent consideration</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944" 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, 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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_D5AD3BBCB00CB5DF9DC9B9B05A2EE2EA_periodEndLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_D5AD3BBCB00CB5DF9DC9B9B05A2EE2EA" 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_D5AD3BBCB00CB5DF9DC9B9B05A2EE2EA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_D5AD3BBCB00CB5DF9DC9B9B05A2EE2EA" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_D5AD3BBCB00CB5DF9DC9B9B05A2EE2EA" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_C7160B48467D0AF91212E38380E18C0E_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember_C7160B48467D0AF91212E38380E18C0E" 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_C7160B48467D0AF91212E38380E18C0E_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember_C7160B48467D0AF91212E38380E18C0E" 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_C7160B48467D0AF91212E38380E18C0E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalMember_C7160B48467D0AF91212E38380E18C0E" xlink:to="lab_us-gaap_AdditionalPaidInCapitalMember_C7160B48467D0AF91212E38380E18C0E" xlink:type="arc" />
    <link:label id="lab_us-gaap_RetainedEarningsMember_CF79D0AB22D149041E2CE38380E1B354_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember_CF79D0AB22D149041E2CE38380E1B354" 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_CF79D0AB22D149041E2CE38380E1B354_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember_CF79D0AB22D149041E2CE38380E1B354" 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_CF79D0AB22D149041E2CE38380E1B354" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsMember_CF79D0AB22D149041E2CE38380E1B354" xlink:to="lab_us-gaap_RetainedEarningsMember_CF79D0AB22D149041E2CE38380E1B354" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" 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_DCD537EF959C5C3FE87EE38380E2C492_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquity_C90DC67383C87336180EE38380E27A44_periodStartLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity_C90DC67383C87336180EE38380E27A44" 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_C90DC67383C87336180EE38380E27A44" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity_C90DC67383C87336180EE38380E27A44" xlink:to="lab_us-gaap_StockholdersEquity_C90DC67383C87336180EE38380E27A44" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesIssued_AD5113D58B7C02D800F1E38380E3B828_periodStartLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued_AD5113D58B7C02D800F1E38380E3B828" 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_AD5113D58B7C02D800F1E38380E3B828" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued_AD5113D58B7C02D800F1E38380E3B828" xlink:to="lab_us-gaap_CommonStockSharesIssued_AD5113D58B7C02D800F1E38380E3B828" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_46800B2F24558241C1FCE38380E34BA5_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_46800B2F24558241C1FCE38380E34BA5" 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_46800B2F24558241C1FCE38380E34BA5_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_46800B2F24558241C1FCE38380E34BA5" 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_46800B2F24558241C1FCE38380E34BA5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_46800B2F24558241C1FCE38380E34BA5" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_46800B2F24558241C1FCE38380E34BA5" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2BD406D0F5091FF5DFA2E38380E3988D_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2BD406D0F5091FF5DFA2E38380E3988D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock under stock option plans, shares</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2BD406D0F5091FF5DFA2E38380E3988D_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2BD406D0F5091FF5DFA2E38380E3988D" 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_2BD406D0F5091FF5DFA2E38380E3988D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2BD406D0F5091FF5DFA2E38380E3988D" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2BD406D0F5091FF5DFA2E38380E3988D" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_465A3B686E01BA57D2ABE38380E39E33_negatedLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue_465A3B686E01BA57D2ABE38380E39E33" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" 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_465A3B686E01BA57D2ABE38380E39E33" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodValue_465A3B686E01BA57D2ABE38380E39E33" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodValue_465A3B686E01BA57D2ABE38380E39E33" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_B36B4C1AA19167ED9357E38380E36F24_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares_B36B4C1AA19167ED9357E38380E36F24" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" 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_B36B4C1AA19167ED9357E38380E36F24" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodShares_B36B4C1AA19167ED9357E38380E36F24" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodShares_B36B4C1AA19167ED9357E38380E36F24" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_2F406EB602CC2E15D0A3E38380E3E8C7_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_2F406EB602CC2E15D0A3E38380E3E8C7" 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_2F406EB602CC2E15D0A3E38380E3E8C7_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_2F406EB602CC2E15D0A3E38380E3E8C7" 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_2F406EB602CC2E15D0A3E38380E3E8C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_2F406EB602CC2E15D0A3E38380E3E8C7" xlink:to="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_2F406EB602CC2E15D0A3E38380E3E8C7" xlink:type="arc" />
    <link:label id="lab_us-gaap_DividendsCommonStockCash_C7934A62846F30712F11E38380E4B5C6_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DividendsCommonStockCash_C7934A62846F30712F11E38380E4B5C6" 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_C7934A62846F30712F11E38380E4B5C6_label_en-US" xlink:label="lab_us-gaap_DividendsCommonStockCash_C7934A62846F30712F11E38380E4B5C6" 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_C7934A62846F30712F11E38380E4B5C6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsCommonStockCash_C7934A62846F30712F11E38380E4B5C6" xlink:to="lab_us-gaap_DividendsCommonStockCash_C7934A62846F30712F11E38380E4B5C6" xlink:type="arc" />
    <link:label id="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_36A4A286DAC837621F4FE38380E41C3C_terseLabel_en-US" xlink:label="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_36A4A286DAC837621F4FE38380E41C3C" 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 17)</link:label>
    <link:label id="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_36A4A286DAC837621F4FE38380E41C3C_label_en-US" xlink:label="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_36A4A286DAC837621F4FE38380E41C3C" 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_36A4A286DAC837621F4FE38380E41C3C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_36A4A286DAC837621F4FE38380E41C3C" xlink:to="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_36A4A286DAC837621F4FE38380E41C3C" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A6D729314FCC7806EA10E38380E4BB6F_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A6D729314FCC7806EA10E38380E4BB6F" 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_A6D729314FCC7806EA10E38380E4BB6F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A6D729314FCC7806EA10E38380E4BB6F" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A6D729314FCC7806EA10E38380E4BB6F" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_82193FFA010AF0EC3B16E38380E55CA4_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_82193FFA010AF0EC3B16E38380E55CA4" 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_82193FFA010AF0EC3B16E38380E55CA4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_82193FFA010AF0EC3B16E38380E55CA4" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_82193FFA010AF0EC3B16E38380E55CA4" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_F32690DC449614F60EB3E38380E503A4_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_F32690DC449614F60EB3E38380E503A4" 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_F32690DC449614F60EB3E38380E503A4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_F32690DC449614F60EB3E38380E503A4" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_F32690DC449614F60EB3E38380E503A4" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_18D69DF9D198D6E64029E38380E5905E_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_18D69DF9D198D6E64029E38380E5905E" 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_18D69DF9D198D6E64029E38380E5905E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_18D69DF9D198D6E64029E38380E5905E" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_18D69DF9D198D6E64029E38380E5905E" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquity_79C6E2CF25D944DCCD58E38380E504AD_periodEndLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity_79C6E2CF25D944DCCD58E38380E504AD" 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_79C6E2CF25D944DCCD58E38380E504AD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity_79C6E2CF25D944DCCD58E38380E504AD" xlink:to="lab_us-gaap_StockholdersEquity_79C6E2CF25D944DCCD58E38380E504AD" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesIssued_8E2DE192FC2B2BA3EBF8E38380E5538C_periodEndLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued_8E2DE192FC2B2BA3EBF8E38380E5538C" 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_8E2DE192FC2B2BA3EBF8E38380E5538C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued_8E2DE192FC2B2BA3EBF8E38380E5538C" xlink:to="lab_us-gaap_CommonStockSharesIssued_8E2DE192FC2B2BA3EBF8E38380E5538C" xlink:type="arc" />
    <link:label id="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_AF08897817EF9F5D8D52FA5C20F6EDDF_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_AF08897817EF9F5D8D52FA5C20F6EDDF" 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_AF08897817EF9F5D8D52FA5C20F6EDDF_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_AF08897817EF9F5D8D52FA5C20F6EDDF" 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_AF08897817EF9F5D8D52FA5C20F6EDDF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_AF08897817EF9F5D8D52FA5C20F6EDDF" xlink:to="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_AF08897817EF9F5D8D52FA5C20F6EDDF" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FF2F4EDC4F6994B73AD9E44669D683C7_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FF2F4EDC4F6994B73AD9E44669D683C7" 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_FF2F4EDC4F6994B73AD9E44669D683C7_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FF2F4EDC4F6994B73AD9E44669D683C7" 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_FF2F4EDC4F6994B73AD9E44669D683C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FF2F4EDC4F6994B73AD9E44669D683C7" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FF2F4EDC4F6994B73AD9E44669D683C7" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_7A03D27703E90734B7A7E44669D62346_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis_7A03D27703E90734B7A7E44669D62346" 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: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_7A03D27703E90734B7A7E44669D62346" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_7A03D27703E90734B7A7E44669D62346" xlink:to="lab_us-gaap_IncomeStatementLocationAxis_7A03D27703E90734B7A7E44669D62346" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13" 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: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_AA6A3D531B838387596DE44669D70A13" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13" xlink:to="lab_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13" xlink:type="arc" />
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE_terseLabel_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" 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_F023E43303176DB5B122E44669D743FE_label_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" 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_F023E43303176DB5B122E44669D743FE_documentation_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" 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-20181231.xsd#cgnx_ProductCostOfRevenueMember" xlink:label="loc_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" xlink:to="lab_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" xlink:type="arc" />
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379_terseLabel_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" 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_B4BBCE93DC74797B7A2AE44669D7A379_label_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" 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_B4BBCE93DC74797B7A2AE44669D7A379_documentation_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" 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-20181231.xsd#cgnx_SellingGeneralAndAdministrativeMember" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" xlink:to="lab_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D" 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_8BB6B817CD99E8EF9656E44669D8C55D_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D" 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_8BB6B817CD99E8EF9656E44669D8C55D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Activities [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5_label_en-US" xlink:label="lab_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Activities [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOperatingActivitiesSegmentAxis" xlink:label="loc_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:to="lab_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:type="arc" />
    <link:label id="lab_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Activities [Domain]</link:label>
    <link:label id="lab_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC_label_en-US" xlink:label="lab_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Activities [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentOperatingActivitiesDomain" xlink:label="loc_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:to="lab_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:type="arc" />
    <link:label id="lab_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA_terseLabel_en-US" xlink:label="lab_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Legal fees</link:label>
    <link:label id="lab_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA_label_en-US" xlink:label="lab_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Legal Fees</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LegalFees" xlink:label="loc_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA" xlink:to="lab_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_ADAD9822C7D5273B1CD4FA5C25D97B7F_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_ADAD9822C7D5273B1CD4FA5C25D97B7F" 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_ADAD9822C7D5273B1CD4FA5C25D97B7F_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_ADAD9822C7D5273B1CD4FA5C25D97B7F" 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_ADAD9822C7D5273B1CD4FA5C25D97B7F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_ADAD9822C7D5273B1CD4FA5C25D97B7F" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_ADAD9822C7D5273B1CD4FA5C25D97B7F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_FB3CF5CBE20F23006626FA5C25DA4D39_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_FB3CF5CBE20F23006626FA5C25DA4D39" 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_FB3CF5CBE20F23006626FA5C25DA4D39_label_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_FB3CF5CBE20F23006626FA5C25DA4D39" 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_FB3CF5CBE20F23006626FA5C25DA4D39" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_FB3CF5CBE20F23006626FA5C25DA4D39" xlink:to="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_FB3CF5CBE20F23006626FA5C25DA4D39" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_BCC82E72B44DDEBC77AEE45F92C7130F_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_BCC82E72B44DDEBC77AEE45F92C7130F" 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_BCC82E72B44DDEBC77AEE45F92C7130F_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_BCC82E72B44DDEBC77AEE45F92C7130F" 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_BCC82E72B44DDEBC77AEE45F92C7130F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_BCC82E72B44DDEBC77AEE45F92C7130F" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_BCC82E72B44DDEBC77AEE45F92C7130F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_C8A465485484AE8960F8E44669EE0661_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_C8A465485484AE8960F8E44669EE0661" 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_C8A465485484AE8960F8E44669EE0661_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_C8A465485484AE8960F8E44669EE0661" 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_C8A465485484AE8960F8E44669EE0661" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_C8A465485484AE8960F8E44669EE0661" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_C8A465485484AE8960F8E44669EE0661" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_DA6CF4E25E48D40EA6F5E44669EE5281_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_DA6CF4E25E48D40EA6F5E44669EE5281" 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_DA6CF4E25E48D40EA6F5E44669EE5281_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_DA6CF4E25E48D40EA6F5E44669EE5281" 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_DA6CF4E25E48D40EA6F5E44669EE5281" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_DA6CF4E25E48D40EA6F5E44669EE5281" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_DA6CF4E25E48D40EA6F5E44669EE5281" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C6858F68EFEADA04B162E44669EE8D48_negatedLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C6858F68EFEADA04B162E44669EE8D48" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Exercised</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_C6858F68EFEADA04B162E44669EE8D48" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C6858F68EFEADA04B162E44669EE8D48" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C6858F68EFEADA04B162E44669EE8D48" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_B3F9B3B89B0718E1D9E8E44669EE4FEC_negatedLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_B3F9B3B89B0718E1D9E8E44669EE4FEC" 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_B3F9B3B89B0718E1D9E8E44669EE4FEC_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_B3F9B3B89B0718E1D9E8E44669EE4FEC" 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_B3F9B3B89B0718E1D9E8E44669EE4FEC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_B3F9B3B89B0718E1D9E8E44669EE4FEC" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_B3F9B3B89B0718E1D9E8E44669EE4FEC" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_279D9BB29B226AE21836E44669EF19DC_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_279D9BB29B226AE21836E44669EF19DC" 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_279D9BB29B226AE21836E44669EF19DC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_279D9BB29B226AE21836E44669EF19DC" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_279D9BB29B226AE21836E44669EF19DC" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_75EE5C2F860A54BF80B5E460F224C929_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_75EE5C2F860A54BF80B5E460F224C929" 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_75EE5C2F860A54BF80B5E460F224C929" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_75EE5C2F860A54BF80B5E460F224C929" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_75EE5C2F860A54BF80B5E460F224C929" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_CC5869CB003D8CA70342E460F2240534_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_CC5869CB003D8CA70342E460F2240534" 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_CC5869CB003D8CA70342E460F2240534_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_CC5869CB003D8CA70342E460F2240534" 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_CC5869CB003D8CA70342E460F2240534" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_CC5869CB003D8CA70342E460F2240534" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_CC5869CB003D8CA70342E460F2240534" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_3EE2C8272B2EDC41AB5EE460F2252E51_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_3EE2C8272B2EDC41AB5EE460F2252E51" 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_3EE2C8272B2EDC41AB5EE460F2252E51_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_3EE2C8272B2EDC41AB5EE460F2252E51" 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_3EE2C8272B2EDC41AB5EE460F2252E51" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_3EE2C8272B2EDC41AB5EE460F2252E51" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_3EE2C8272B2EDC41AB5EE460F2252E51" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_648ECA90AEA46990FF3AE460F225F6A4_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_648ECA90AEA46990FF3AE460F225F6A4" 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_648ECA90AEA46990FF3AE460F225F6A4_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_648ECA90AEA46990FF3AE460F225F6A4" 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_648ECA90AEA46990FF3AE460F225F6A4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_648ECA90AEA46990FF3AE460F225F6A4" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_648ECA90AEA46990FF3AE460F225F6A4" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_98BCB93998C11620B3DBE460F225727F_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_98BCB93998C11620B3DBE460F225727F" 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_98BCB93998C11620B3DBE460F225727F_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_98BCB93998C11620B3DBE460F225727F" 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_98BCB93998C11620B3DBE460F225727F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_98BCB93998C11620B3DBE460F225727F" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_98BCB93998C11620B3DBE460F225727F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_E9AA61F5A810CB32B775E460F2257618_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_E9AA61F5A810CB32B775E460F2257618" 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_E9AA61F5A810CB32B775E460F2257618" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_E9AA61F5A810CB32B775E460F2257618" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_E9AA61F5A810CB32B775E460F2257618" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_4FF123451D262A450312E44669EF2D67_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_4FF123451D262A450312E44669EF2D67" 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_4FF123451D262A450312E44669EF2D67_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_4FF123451D262A450312E44669EF2D67" 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_4FF123451D262A450312E44669EF2D67" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_4FF123451D262A450312E44669EF2D67" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_4FF123451D262A450312E44669EF2D67" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_B6A11DA3EBFF0FC1B5A0E44669EF1257_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_B6A11DA3EBFF0FC1B5A0E44669EF1257" 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_B6A11DA3EBFF0FC1B5A0E44669EF1257_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_B6A11DA3EBFF0FC1B5A0E44669EF1257" 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_B6A11DA3EBFF0FC1B5A0E44669EF1257" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_B6A11DA3EBFF0FC1B5A0E44669EF1257" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_B6A11DA3EBFF0FC1B5A0E44669EF1257" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_172AD2DFD1C91CA9E9E9E44669F00B11_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_172AD2DFD1C91CA9E9E9E44669F00B11" 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_172AD2DFD1C91CA9E9E9E44669F00B11_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_172AD2DFD1C91CA9E9E9E44669F00B11" 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_172AD2DFD1C91CA9E9E9E44669F00B11" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_172AD2DFD1C91CA9E9E9E44669F00B11" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_172AD2DFD1C91CA9E9E9E44669F00B11" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_64F72ECCB50262F714FBE44669F0D46B_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_64F72ECCB50262F714FBE44669F0D46B" 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_64F72ECCB50262F714FBE44669F0D46B_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_64F72ECCB50262F714FBE44669F0D46B" 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_64F72ECCB50262F714FBE44669F0D46B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_64F72ECCB50262F714FBE44669F0D46B" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_64F72ECCB50262F714FBE44669F0D46B" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_281E35283819D0D533DFE44669F08500_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_281E35283819D0D533DFE44669F08500" 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_281E35283819D0D533DFE44669F08500_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_281E35283819D0D533DFE44669F08500" 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_281E35283819D0D533DFE44669F08500" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_281E35283819D0D533DFE44669F08500" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_281E35283819D0D533DFE44669F08500" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_EC600E8F2AA14B1448D5E44669F05A81_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_EC600E8F2AA14B1448D5E44669F05A81" 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_EC600E8F2AA14B1448D5E44669F05A81_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_EC600E8F2AA14B1448D5E44669F05A81" 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_EC600E8F2AA14B1448D5E44669F05A81" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_EC600E8F2AA14B1448D5E44669F05A81" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_EC600E8F2AA14B1448D5E44669F05A81" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_CFA1D4D3E3EC34FF53D2E44669F14743_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_CFA1D4D3E3EC34FF53D2E44669F14743" 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_CFA1D4D3E3EC34FF53D2E44669F14743_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_CFA1D4D3E3EC34FF53D2E44669F14743" 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_CFA1D4D3E3EC34FF53D2E44669F14743" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_CFA1D4D3E3EC34FF53D2E44669F14743" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_CFA1D4D3E3EC34FF53D2E44669F14743" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_813D723C4E8D84E17DEFE44669F1828C_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_813D723C4E8D84E17DEFE44669F1828C" 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_813D723C4E8D84E17DEFE44669F1828C_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_813D723C4E8D84E17DEFE44669F1828C" 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_813D723C4E8D84E17DEFE44669F1828C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_813D723C4E8D84E17DEFE44669F1828C" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_813D723C4E8D84E17DEFE44669F1828C" xlink:type="arc" />
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_66CEAC4DE42FC9268387E44669F16308_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_66CEAC4DE42FC9268387E44669F16308" 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_66CEAC4DE42FC9268387E44669F16308_label_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_66CEAC4DE42FC9268387E44669F16308" 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_66CEAC4DE42FC9268387E44669F16308_documentation_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_66CEAC4DE42FC9268387E44669F16308" 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-20181231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_66CEAC4DE42FC9268387E44669F16308" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_66CEAC4DE42FC9268387E44669F16308" xlink:to="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_66CEAC4DE42FC9268387E44669F16308" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_3E787339083A5656A01AE44669F15545_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_3E787339083A5656A01AE44669F15545" 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_3E787339083A5656A01AE44669F15545_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_3E787339083A5656A01AE44669F15545" 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_3E787339083A5656A01AE44669F15545" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_3E787339083A5656A01AE44669F15545" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_3E787339083A5656A01AE44669F15545" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationDisclosureTextBlock_444975B09A68A896DA83E44D17095CA9_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock_444975B09A68A896DA83E44D17095CA9" 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_444975B09A68A896DA83E44D17095CA9_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock_444975B09A68A896DA83E44D17095CA9" 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_444975B09A68A896DA83E44D17095CA9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationDisclosureTextBlock_444975B09A68A896DA83E44D17095CA9" xlink:to="lab_us-gaap_BusinessCombinationDisclosureTextBlock_444975B09A68A896DA83E44D17095CA9" xlink:type="arc" />
    <link:label id="lab_us-gaap_DistributionRightsMember_E9F3569A98F436B7A24FE3837F5BBF51_terseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember_E9F3569A98F436B7A24FE3837F5BBF51" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Distribution Networks [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_E9F3569A98F436B7A24FE3837F5BBF51" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DistributionRightsMember_E9F3569A98F436B7A24FE3837F5BBF51" xlink:to="lab_us-gaap_DistributionRightsMember_E9F3569A98F436B7A24FE3837F5BBF51" xlink:type="arc" />
    <link:label id="lab_us-gaap_DevelopedTechnologyRightsMember_246C1E43BE478099AF3CE3837F5B1DDD_terseLabel_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember_246C1E43BE478099AF3CE3837F5B1DDD" 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_246C1E43BE478099AF3CE3837F5B1DDD_label_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember_246C1E43BE478099AF3CE3837F5B1DDD" 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_246C1E43BE478099AF3CE3837F5B1DDD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DevelopedTechnologyRightsMember_246C1E43BE478099AF3CE3837F5B1DDD" xlink:to="lab_us-gaap_DevelopedTechnologyRightsMember_246C1E43BE478099AF3CE3837F5B1DDD" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherIntangibleAssetsMember_0D77FF9B0307D5ED2544E3837F5CB4A9_terseLabel_en-US" xlink:label="lab_us-gaap_OtherIntangibleAssetsMember_0D77FF9B0307D5ED2544E3837F5CB4A9" 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_0D77FF9B0307D5ED2544E3837F5CB4A9_label_en-US" xlink:label="lab_us-gaap_OtherIntangibleAssetsMember_0D77FF9B0307D5ED2544E3837F5CB4A9" 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_0D77FF9B0307D5ED2544E3837F5CB4A9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherIntangibleAssetsMember_0D77FF9B0307D5ED2544E3837F5CB4A9" xlink:to="lab_us-gaap_OtherIntangibleAssetsMember_0D77FF9B0307D5ED2544E3837F5CB4A9" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsGross_591D30ED9EAB06FFBE9DE3837F5CDA3F_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsGross_591D30ED9EAB06FFBE9DE3837F5CDA3F" 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_591D30ED9EAB06FFBE9DE3837F5CDA3F_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsGross_591D30ED9EAB06FFBE9DE3837F5CDA3F" 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_591D30ED9EAB06FFBE9DE3837F5CDA3F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsGross_591D30ED9EAB06FFBE9DE3837F5CDA3F" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsGross_591D30ED9EAB06FFBE9DE3837F5CDA3F" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_3AEE8E580AF212B11058E3837F5CD0D2_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_3AEE8E580AF212B11058E3837F5CD0D2" 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_3AEE8E580AF212B11058E3837F5CD0D2_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_3AEE8E580AF212B11058E3837F5CD0D2" 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_3AEE8E580AF212B11058E3837F5CD0D2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_3AEE8E580AF212B11058E3837F5CD0D2" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_3AEE8E580AF212B11058E3837F5CD0D2" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3E1628C701054E2CE609FA5C20CEC72D_label_en-US" xlink:label="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3E1628C701054E2CE609FA5C20CEC72D" 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_3E1628C701054E2CE609FA5C20CEC72D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3E1628C701054E2CE609FA5C20CEC72D" xlink:to="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3E1628C701054E2CE609FA5C20CEC72D" xlink:type="arc" />
    <link:label id="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_BE290D3028283B41ED26FA5C20CED058_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_BE290D3028283B41ED26FA5C20CED058" 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_BE290D3028283B41ED26FA5C20CED058_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_BE290D3028283B41ED26FA5C20CED058" 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_BE290D3028283B41ED26FA5C20CED058" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_BE290D3028283B41ED26FA5C20CED058" xlink:to="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_BE290D3028283B41ED26FA5C20CED058" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_DAAE97EE3A946B0503B4FA5C2172FE19_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_DAAE97EE3A946B0503B4FA5C2172FE19" 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_DAAE97EE3A946B0503B4FA5C2172FE19_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_DAAE97EE3A946B0503B4FA5C2172FE19" 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_DAAE97EE3A946B0503B4FA5C2172FE19" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_DAAE97EE3A946B0503B4FA5C2172FE19" xlink:to="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_DAAE97EE3A946B0503B4FA5C2172FE19" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_82A78EB2F21657ECDB53E3837B4572F8_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock_82A78EB2F21657ECDB53E3837B4572F8" 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_82A78EB2F21657ECDB53E3837B4572F8_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock_82A78EB2F21657ECDB53E3837B4572F8" 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_82A78EB2F21657ECDB53E3837B4572F8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsTextBlock_82A78EB2F21657ECDB53E3837B4572F8" xlink:to="lab_us-gaap_SubsequentEventsTextBlock_82A78EB2F21657ECDB53E3837B4572F8" xlink:type="arc" />
    <link:label id="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_B9EB844B9419C1C0CAF1E3A3DE227B65_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_B9EB844B9419C1C0CAF1E3A3DE227B65" 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_B9EB844B9419C1C0CAF1E3A3DE227B65_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_B9EB844B9419C1C0CAF1E3A3DE227B65" 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_B9EB844B9419C1C0CAF1E3A3DE227B65" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_B9EB844B9419C1C0CAF1E3A3DE227B65" xlink:to="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_B9EB844B9419C1C0CAF1E3A3DE227B65" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountingStandardsUpdate201602Member_2B972137BC8B2641B7FAE3A58D6BBA24_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201602Member_2B972137BC8B2641B7FAE3A58D6BBA24" 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_2B972137BC8B2641B7FAE3A58D6BBA24_label_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201602Member_2B972137BC8B2641B7FAE3A58D6BBA24" 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_2B972137BC8B2641B7FAE3A58D6BBA24" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingStandardsUpdate201602Member_2B972137BC8B2641B7FAE3A58D6BBA24" xlink:to="lab_us-gaap_AccountingStandardsUpdate201602Member_2B972137BC8B2641B7FAE3A58D6BBA24" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementScenarioAxis_D01DAE631C8BDE13C35AE3A51143C563_terseLabel_en-US" xlink:label="lab_us-gaap_StatementScenarioAxis_D01DAE631C8BDE13C35AE3A51143C563" 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_D01DAE631C8BDE13C35AE3A51143C563_label_en-US" xlink:label="lab_us-gaap_StatementScenarioAxis_D01DAE631C8BDE13C35AE3A51143C563" 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_D01DAE631C8BDE13C35AE3A51143C563" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementScenarioAxis_D01DAE631C8BDE13C35AE3A51143C563" xlink:to="lab_us-gaap_StatementScenarioAxis_D01DAE631C8BDE13C35AE3A51143C563" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5_terseLabel_en-US" xlink:label="lab_us-gaap_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5" 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_4E14FDB50F975B7279B9E3A5114347A5_label_en-US" xlink:label="lab_us-gaap_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5" 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_4E14FDB50F975B7279B9E3A5114347A5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5" xlink:to="lab_us-gaap_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5_terseLabel_en-US" xlink:label="lab_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Scenario, Plan [Member]</link:label>
    <link:label id="lab_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5_label_en-US" xlink:label="lab_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Scenario, Plan [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScenarioPlanMember" xlink:label="loc_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5" xlink:to="lab_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5" xlink:type="arc" />
    <link:label id="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_2EAC075E1A4A41B79926E3A3DE22D576_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_2EAC075E1A4A41B79926E3A3DE22D576" 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_2EAC075E1A4A41B79926E3A3DE22D576_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_2EAC075E1A4A41B79926E3A3DE22D576" 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_2EAC075E1A4A41B79926E3A3DE22D576" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_2EAC075E1A4A41B79926E3A3DE22D576" xlink:to="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_2EAC075E1A4A41B79926E3A3DE22D576" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_CA802F4A9B9DED468305E3A49D0AE755_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset_CA802F4A9B9DED468305E3A49D0AE755" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, asset</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_CA802F4A9B9DED468305E3A49D0AE755_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset_CA802F4A9B9DED468305E3A49D0AE755" 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_CA802F4A9B9DED468305E3A49D0AE755" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseRightOfUseAsset_CA802F4A9B9DED468305E3A49D0AE755" xlink:to="lab_us-gaap_OperatingLeaseRightOfUseAsset_CA802F4A9B9DED468305E3A49D0AE755" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseLiability_E32D72CC0FADD3561F55E3A74B0ABC54_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability_E32D72CC0FADD3561F55E3A74B0ABC54" 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_E32D72CC0FADD3561F55E3A74B0ABC54_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability_E32D72CC0FADD3561F55E3A74B0ABC54" 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_E32D72CC0FADD3561F55E3A74B0ABC54" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiability_E32D72CC0FADD3561F55E3A74B0ABC54" xlink:to="lab_us-gaap_OperatingLeaseLiability_E32D72CC0FADD3561F55E3A74B0ABC54" xlink:type="arc" />
    <link:label id="lab_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6_terseLabel_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" 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_E3DA9F2A25448CF2A1C4E483AB7E5DB6_label_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" 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_E3DA9F2A25448CF2A1C4E483AB7E5DB6_documentation_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" 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-20181231.xsd#cgnx_LongTermInvestmentsMember" xlink:label="loc_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" xlink:to="lab_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_A906820175C1AD0C8C54E483AB7F3C85_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_A906820175C1AD0C8C54E483AB7F3C85" 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_A906820175C1AD0C8C54E483AB7F3C85_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_A906820175C1AD0C8C54E483AB7F3C85" 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_A906820175C1AD0C8C54E483AB7F3C85" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_A906820175C1AD0C8C54E483AB7F3C85" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_A906820175C1AD0C8C54E483AB7F3C85" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_524D63E741364050B890E483AB7FFF1B_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_524D63E741364050B890E483AB7FFF1B" 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_524D63E741364050B890E483AB7FFF1B_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_524D63E741364050B890E483AB7FFF1B" 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_524D63E741364050B890E483AB7FFF1B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_524D63E741364050B890E483AB7FFF1B" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_524D63E741364050B890E483AB7FFF1B" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_D21A2168EC8B1942B283E483AB7F1AC0_negatedLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_D21A2168EC8B1942B283E483AB7F1AC0" 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_D21A2168EC8B1942B283E483AB7F1AC0_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_D21A2168EC8B1942B283E483AB7F1AC0" 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_D21A2168EC8B1942B283E483AB7F1AC0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_D21A2168EC8B1942B283E483AB7F1AC0" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_D21A2168EC8B1942B283E483AB7F1AC0" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_7877AAF815A689FA615CE483AB7F151E_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_7877AAF815A689FA615CE483AB7F151E" 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_7877AAF815A689FA615CE483AB7F151E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_7877AAF815A689FA615CE483AB7F151E" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_7877AAF815A689FA615CE483AB7F151E" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_426E9A56386EE2367623FA5C20764D90_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_426E9A56386EE2367623FA5C20764D90" 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_426E9A56386EE2367623FA5C20764D90_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_426E9A56386EE2367623FA5C20764D90" 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_426E9A56386EE2367623FA5C20764D90" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_426E9A56386EE2367623FA5C20764D90" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_426E9A56386EE2367623FA5C20764D90" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_CE7E95692C4D2BA9717FE3837EA0F4C6_terseLabel_en-US" xlink:label="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_CE7E95692C4D2BA9717FE3837EA0F4C6" 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_CE7E95692C4D2BA9717FE3837EA0F4C6_label_en-US" xlink:label="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_CE7E95692C4D2BA9717FE3837EA0F4C6" 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_CE7E95692C4D2BA9717FE3837EA0F4C6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_CE7E95692C4D2BA9717FE3837EA0F4C6" xlink:to="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_CE7E95692C4D2BA9717FE3837EA0F4C6" xlink:type="arc" />
    <link:label id="lab_us-gaap_BalanceSheetLocationAxis_C5BFDF1A4E9290DA2A74E3837EA23BC0_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis_C5BFDF1A4E9290DA2A74E3837EA23BC0" 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_C5BFDF1A4E9290DA2A74E3837EA23BC0_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis_C5BFDF1A4E9290DA2A74E3837EA23BC0" 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_C5BFDF1A4E9290DA2A74E3837EA23BC0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_C5BFDF1A4E9290DA2A74E3837EA23BC0" xlink:to="lab_us-gaap_BalanceSheetLocationAxis_C5BFDF1A4E9290DA2A74E3837EA23BC0" xlink:type="arc" />
    <link:label id="lab_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A" 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_4A0274147AA6E563B1E8E3837EA26F8A_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A" 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_4A0274147AA6E563B1E8E3837EA26F8A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A" xlink:to="lab_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A" xlink:type="arc" />
    <link:label id="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_B351AE0A8F345EC82417E3837EA2C051_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_B351AE0A8F345EC82417E3837EA2C051" 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_B351AE0A8F345EC82417E3837EA2C051_label_en-US" xlink:label="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_B351AE0A8F345EC82417E3837EA2C051" 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_B351AE0A8F345EC82417E3837EA2C051" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_B351AE0A8F345EC82417E3837EA2C051" xlink:to="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_B351AE0A8F345EC82417E3837EA2C051" xlink:type="arc" />
    <link:label id="lab_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981_terseLabel_en-US" xlink:label="lab_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" 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_4F587836E5A7A46EB6ECE3837EA2F981_label_en-US" xlink:label="lab_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" 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_4F587836E5A7A46EB6ECE3837EA2F981_documentation_en-US" xlink:label="lab_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" 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-20181231.xsd#cgnx_AccruedExpensesMember" xlink:label="loc_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" xlink:to="lab_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativesFairValueLineItems_2706D5966C1F96EBA489E3837EA3A73D_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesFairValueLineItems_2706D5966C1F96EBA489E3837EA3A73D" 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_2706D5966C1F96EBA489E3837EA3A73D_label_en-US" xlink:label="lab_us-gaap_DerivativesFairValueLineItems_2706D5966C1F96EBA489E3837EA3A73D" 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_2706D5966C1F96EBA489E3837EA3A73D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_2706D5966C1F96EBA489E3837EA3A73D" xlink:to="lab_us-gaap_DerivativesFairValueLineItems_2706D5966C1F96EBA489E3837EA3A73D" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeAssets_556CF7BB007EC510E179E3837EA349BB_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets_556CF7BB007EC510E179E3837EA349BB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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_556CF7BB007EC510E179E3837EA349BB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssets_556CF7BB007EC510E179E3837EA349BB" xlink:to="lab_us-gaap_DerivativeAssets_556CF7BB007EC510E179E3837EA349BB" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeLiabilities_256147E0B68891D8431DE3837EA320AF_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities_256147E0B68891D8431DE3837EA320AF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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_256147E0B68891D8431DE3837EA320AF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilities_256147E0B68891D8431DE3837EA320AF" xlink:to="lab_us-gaap_DerivativeLiabilities_256147E0B68891D8431DE3837EA320AF" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Future minimum rental receipts under non-cancelable lease agreements</link:label>
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments Receivable [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_4F5D58E700C18C918AB4E3837EFA2A2A_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_4F5D58E700C18C918AB4E3837EFA2A2A" 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_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_4F5D58E700C18C918AB4E3837EFA2A2A_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_4F5D58E700C18C918AB4E3837EFA2A2A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments Receivable, in Two Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_4F5D58E700C18C918AB4E3837EFA2A2A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_4F5D58E700C18C918AB4E3837EFA2A2A" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_4F5D58E700C18C918AB4E3837EFA2A2A" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_ED080FBF8140BE15EFF4E3837EFA40B6_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_ED080FBF8140BE15EFF4E3837EFA40B6" 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_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_ED080FBF8140BE15EFF4E3837EFA40B6_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_ED080FBF8140BE15EFF4E3837EFA40B6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments Receivable, in Three Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_ED080FBF8140BE15EFF4E3837EFA40B6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_ED080FBF8140BE15EFF4E3837EFA40B6" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_ED080FBF8140BE15EFF4E3837EFA40B6" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_5ADC50EFDEFE3B2C35E2E3837EFA2E34_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_5ADC50EFDEFE3B2C35E2E3837EFA2E34" 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_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_5ADC50EFDEFE3B2C35E2E3837EFA2E34_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_5ADC50EFDEFE3B2C35E2E3837EFA2E34" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments Receivable, in Four Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_5ADC50EFDEFE3B2C35E2E3837EFA2E34" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_5ADC50EFDEFE3B2C35E2E3837EFA2E34" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_5ADC50EFDEFE3B2C35E2E3837EFA2E34" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_7C134579941B2EF4E8CAE3837EFB3A52_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_7C134579941B2EF4E8CAE3837EFB3A52" 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_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_7C134579941B2EF4E8CAE3837EFB3A52_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_7C134579941B2EF4E8CAE3837EFB3A52" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments Receivable, in Five Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_7C134579941B2EF4E8CAE3837EFB3A52" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_7C134579941B2EF4E8CAE3837EFB3A52" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_7C134579941B2EF4E8CAE3837EFB3A52" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_1CB1BB7E883E3EA36C7CE3837EFBEB5E_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_1CB1BB7E883E3EA36C7CE3837EFBEB5E" 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_OperatingLeasesFutureMinimumPaymentsReceivable_1CB1BB7E883E3EA36C7CE3837EFBEB5E_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_1CB1BB7E883E3EA36C7CE3837EFBEB5E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments Receivable</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_1CB1BB7E883E3EA36C7CE3837EFBEB5E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_1CB1BB7E883E3EA36C7CE3837EFBEB5E" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_1CB1BB7E883E3EA36C7CE3837EFBEB5E" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_4A8620E94316D2C08B02E46A2329A939_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_4A8620E94316D2C08B02E46A2329A939" 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_4A8620E94316D2C08B02E46A2329A939_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_4A8620E94316D2C08B02E46A2329A939" 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_4A8620E94316D2C08B02E46A2329A939" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_4A8620E94316D2C08B02E46A2329A939" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_4A8620E94316D2C08B02E46A2329A939" xlink:type="arc" />
    <link:label id="lab_us-gaap_RestrictedStockMember_E8A51B62E597D46EA664E46A232A6B77_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockMember_E8A51B62E597D46EA664E46A232A6B77" 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_E8A51B62E597D46EA664E46A232A6B77_label_en-US" xlink:label="lab_us-gaap_RestrictedStockMember_E8A51B62E597D46EA664E46A232A6B77" 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_E8A51B62E597D46EA664E46A232A6B77" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockMember_E8A51B62E597D46EA664E46A232A6B77" xlink:to="lab_us-gaap_RestrictedStockMember_E8A51B62E597D46EA664E46A232A6B77" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661" 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_7EFF3FFB9B58AC4EEA27E46A232A9661_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661" 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_7EFF3FFB9B58AC4EEA27E46A232A9661" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661" xlink:to="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_7EFF3FFB9B58AC4EEA27E46A232A9661" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0" 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_1C0A4AF5A1C5002E2CDBE46A232A31E0_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0" 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_1C0A4AF5A1C5002E2CDBE46A232A31E0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_1C0A4AF5A1C5002E2CDBE46A232A31E0" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4F1AC41341A9C1D7C681E46A232B0811_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4F1AC41341A9C1D7C681E46A232B0811" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Nonvested beginning balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4F1AC41341A9C1D7C681E46A232B0811_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4F1AC41341A9C1D7C681E46A232B0811" 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_4F1AC41341A9C1D7C681E46A232B0811" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4F1AC41341A9C1D7C681E46A232B0811" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4F1AC41341A9C1D7C681E46A232B0811" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_80E1B7780883A65FE83AE46A232B3F4E_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_80E1B7780883A65FE83AE46A232B3F4E" 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_80E1B7780883A65FE83AE46A232B3F4E_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_80E1B7780883A65FE83AE46A232B3F4E" 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_80E1B7780883A65FE83AE46A232B3F4E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_80E1B7780883A65FE83AE46A232B3F4E" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_80E1B7780883A65FE83AE46A232B3F4E" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_997E353E0C761FEB748DE46A232B1CD4_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_997E353E0C761FEB748DE46A232B1CD4" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Vested</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_997E353E0C761FEB748DE46A232B1CD4_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_997E353E0C761FEB748DE46A232B1CD4" 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_997E353E0C761FEB748DE46A232B1CD4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_997E353E0C761FEB748DE46A232B1CD4" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_997E353E0C761FEB748DE46A232B1CD4" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_E6049EE20237D12EA327E46B9C4085AE_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_E6049EE20237D12EA327E46B9C4085AE" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Forfeited or expired</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_E6049EE20237D12EA327E46B9C4085AE_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_E6049EE20237D12EA327E46B9C4085AE" 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_E6049EE20237D12EA327E46B9C4085AE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_E6049EE20237D12EA327E46B9C4085AE" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_E6049EE20237D12EA327E46B9C4085AE" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_00B0D1F211C05C09EBD5E46A232B477A_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_00B0D1F211C05C09EBD5E46A232B477A" 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_00B0D1F211C05C09EBD5E46A232B477A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_00B0D1F211C05C09EBD5E46A232B477A" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_00B0D1F211C05C09EBD5E46A232B477A" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356" 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_A17E5D4096970A9B4D3AE46A232B0356_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356" 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_A17E5D4096970A9B4D3AE46A232B0356" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_A17E5D4096970A9B4D3AE46A232B0356" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_407C8279D6A5A5E1C1C9E46A232C84A3_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_407C8279D6A5A5E1C1C9E46A232C84A3" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Nonvested beginning balance, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_407C8279D6A5A5E1C1C9E46A232C84A3_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_407C8279D6A5A5E1C1C9E46A232C84A3" 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_407C8279D6A5A5E1C1C9E46A232C84A3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_407C8279D6A5A5E1C1C9E46A232C84A3" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_407C8279D6A5A5E1C1C9E46A232C84A3" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_AB0FF40987677460C274E46A232C9FF1_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_AB0FF40987677460C274E46A232C9FF1" 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_AB0FF40987677460C274E46A232C9FF1_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_AB0FF40987677460C274E46A232C9FF1" 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_AB0FF40987677460C274E46A232C9FF1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_AB0FF40987677460C274E46A232C9FF1" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_AB0FF40987677460C274E46A232C9FF1" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_95C7789591F73B0C4CDAE46A232D6D6B_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_95C7789591F73B0C4CDAE46A232D6D6B" 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_95C7789591F73B0C4CDAE46A232D6D6B_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_95C7789591F73B0C4CDAE46A232D6D6B" 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_95C7789591F73B0C4CDAE46A232D6D6B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_95C7789591F73B0C4CDAE46A232D6D6B" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_95C7789591F73B0C4CDAE46A232D6D6B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_86FF7905A4F1BC694398E46A232D2F06_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_86FF7905A4F1BC694398E46A232D2F06" 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_86FF7905A4F1BC694398E46A232D2F06_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_86FF7905A4F1BC694398E46A232D2F06" 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_86FF7905A4F1BC694398E46A232D2F06" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_86FF7905A4F1BC694398E46A232D2F06" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_86FF7905A4F1BC694398E46A232D2F06" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_870803463112CF680994E46A232DF618_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_870803463112CF680994E46A232DF618" 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_870803463112CF680994E46A232DF618" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_870803463112CF680994E46A232DF618" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_870803463112CF680994E46A232DF618" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_CE9F13758F5A93933BC9E46A232EE9B5_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_CE9F13758F5A93933BC9E46A232EE9B5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested, aggregate intrinsic value</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_CE9F13758F5A93933BC9E46A232EE9B5_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_CE9F13758F5A93933BC9E46A232EE9B5" 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, Aggregate Intrinsic Value, Vested</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_CE9F13758F5A93933BC9E46A232EE9B5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_CE9F13758F5A93933BC9E46A232EE9B5" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_CE9F13758F5A93933BC9E46A232EE9B5" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_A530037ACA2E5EBD225FE46A232ECE04_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_A530037ACA2E5EBD225FE46A232ECE04" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Nonvested, aggregate intrinsic value</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_A530037ACA2E5EBD225FE46A232ECE04_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_A530037ACA2E5EBD225FE46A232ECE04" 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, Aggregate Intrinsic Value, Nonvested</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_A530037ACA2E5EBD225FE46A232ECE04" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_A530037ACA2E5EBD225FE46A232ECE04" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_A530037ACA2E5EBD225FE46A232ECE04" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_ADA26D4BC2AE2B9F37F596650524C1EB_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_ADA26D4BC2AE2B9F37F596650524C1EB" 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_ADA26D4BC2AE2B9F37F596650524C1EB_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_ADA26D4BC2AE2B9F37F596650524C1EB" 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_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedSalariesCurrent_822B6D48CF7CFF49165696650524B97C_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedSalariesCurrent_822B6D48CF7CFF49165696650524B97C" 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_822B6D48CF7CFF49165696650524B97C_label_en-US" xlink:label="lab_us-gaap_AccruedSalariesCurrent_822B6D48CF7CFF49165696650524B97C" 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_822B6D48CF7CFF49165696650524B97C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedSalariesCurrent_822B6D48CF7CFF49165696650524B97C" xlink:to="lab_us-gaap_AccruedSalariesCurrent_822B6D48CF7CFF49165696650524B97C" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedBonusesCurrent_5D902354A2710BA2E83E966505246098_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedBonusesCurrent_5D902354A2710BA2E83E966505246098" 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_5D902354A2710BA2E83E966505246098_label_en-US" xlink:label="lab_us-gaap_AccruedBonusesCurrent_5D902354A2710BA2E83E966505246098" 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_5D902354A2710BA2E83E966505246098" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedBonusesCurrent_5D902354A2710BA2E83E966505246098" xlink:to="lab_us-gaap_AccruedBonusesCurrent_5D902354A2710BA2E83E966505246098" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedVacationCurrent_2F7146DE38C3B6C62707966505245824_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedVacationCurrent_2F7146DE38C3B6C62707966505245824" 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_2F7146DE38C3B6C62707966505245824_label_en-US" xlink:label="lab_us-gaap_AccruedVacationCurrent_2F7146DE38C3B6C62707966505245824" 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_2F7146DE38C3B6C62707966505245824" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedVacationCurrent_2F7146DE38C3B6C62707966505245824" xlink:to="lab_us-gaap_AccruedVacationCurrent_2F7146DE38C3B6C62707966505245824" xlink:type="arc" />
    <link:label id="lab_cgnx_RetirementAllowance_EE68EBF581FFC63DB63996650525D596_terseLabel_en-US" xlink:label="lab_cgnx_RetirementAllowance_EE68EBF581FFC63DB63996650525D596" 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_EE68EBF581FFC63DB63996650525D596_label_en-US" xlink:label="lab_cgnx_RetirementAllowance_EE68EBF581FFC63DB63996650525D596" 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_EE68EBF581FFC63DB63996650525D596_documentation_en-US" xlink:label="lab_cgnx_RetirementAllowance_EE68EBF581FFC63DB63996650525D596" 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-20181231.xsd#cgnx_RetirementAllowance" xlink:label="loc_cgnx_RetirementAllowance_EE68EBF581FFC63DB63996650525D596" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RetirementAllowance_EE68EBF581FFC63DB63996650525D596" xlink:to="lab_cgnx_RetirementAllowance_EE68EBF581FFC63DB63996650525D596" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_C42AE08D557EF7F9D80E96650525B66A_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_C42AE08D557EF7F9D80E96650525B66A" 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_C42AE08D557EF7F9D80E96650525B66A_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_C42AE08D557EF7F9D80E96650525B66A" 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_C42AE08D557EF7F9D80E96650525B66A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_C42AE08D557EF7F9D80E96650525B66A" xlink:to="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_C42AE08D557EF7F9D80E96650525B66A" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_4D98959701F2FE39200596650524F43A_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_4D98959701F2FE39200596650524F43A" 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_4D98959701F2FE39200596650524F43A_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_4D98959701F2FE39200596650524F43A" 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_4D98959701F2FE39200596650524F43A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_4D98959701F2FE39200596650524F43A" xlink:to="lab_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_4D98959701F2FE39200596650524F43A" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrent_3B135CA72632FF0BB12E96650525BA07_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrent_3B135CA72632FF0BB12E96650525BA07" 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_3B135CA72632FF0BB12E96650525BA07_label_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrent_3B135CA72632FF0BB12E96650525BA07" 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_3B135CA72632FF0BB12E96650525BA07" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAccruedLiabilitiesCurrent_3B135CA72632FF0BB12E96650525BA07" xlink:to="lab_us-gaap_OtherAccruedLiabilitiesCurrent_3B135CA72632FF0BB12E96650525BA07" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_6D887CA8E12834AFA5BA96650525B5CB_totalLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent_6D887CA8E12834AFA5BA96650525B5CB" xlink:role="http://www.xbrl.org/2003/role/totalLabel" 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_6D887CA8E12834AFA5BA96650525B5CB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_6D887CA8E12834AFA5BA96650525B5CB" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrent_6D887CA8E12834AFA5BA96650525B5CB" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_19C094B7002E34BE81B6FA5C210A4FAF_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_19C094B7002E34BE81B6FA5C210A4FAF" 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_19C094B7002E34BE81B6FA5C210A4FAF_label_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_19C094B7002E34BE81B6FA5C210A4FAF" 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_19C094B7002E34BE81B6FA5C210A4FAF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_19C094B7002E34BE81B6FA5C210A4FAF" xlink:to="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_19C094B7002E34BE81B6FA5C210A4FAF" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Future minimum rental payments under lease agreements</link:label>
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments Due, Fiscal Year Maturity [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_F63BACDE3D7CF6958006E3837F069161_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_F63BACDE3D7CF6958006E3837F069161" 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_OperatingLeasesFutureMinimumPaymentsDueCurrent_F63BACDE3D7CF6958006E3837F069161_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_F63BACDE3D7CF6958006E3837F069161" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum 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_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_F63BACDE3D7CF6958006E3837F069161" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_F63BACDE3D7CF6958006E3837F069161" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_F63BACDE3D7CF6958006E3837F069161" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_606E7100017FDEFC0D56E3837F06FEEC_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_606E7100017FDEFC0D56E3837F06FEEC" 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_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_606E7100017FDEFC0D56E3837F06FEEC_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_606E7100017FDEFC0D56E3837F06FEEC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments, Due in Two Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_606E7100017FDEFC0D56E3837F06FEEC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_606E7100017FDEFC0D56E3837F06FEEC" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_606E7100017FDEFC0D56E3837F06FEEC" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_A90F42B5D74CAE8D6B5FE3837F062C09_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_A90F42B5D74CAE8D6B5FE3837F062C09" 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_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_A90F42B5D74CAE8D6B5FE3837F062C09_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_A90F42B5D74CAE8D6B5FE3837F062C09" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments, Due in Three Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_A90F42B5D74CAE8D6B5FE3837F062C09" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_A90F42B5D74CAE8D6B5FE3837F062C09" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_A90F42B5D74CAE8D6B5FE3837F062C09" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_E7066BAF147B9F27ABAAE3837F07D9FA_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_E7066BAF147B9F27ABAAE3837F07D9FA" 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_OperatingLeasesFutureMinimumPaymentsDueInFourYears_E7066BAF147B9F27ABAAE3837F07D9FA_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_E7066BAF147B9F27ABAAE3837F07D9FA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments, Due in Four Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_E7066BAF147B9F27ABAAE3837F07D9FA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_E7066BAF147B9F27ABAAE3837F07D9FA" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_E7066BAF147B9F27ABAAE3837F07D9FA" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_0A46B7BB771545D17CE1E3837F07CD47_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_0A46B7BB771545D17CE1E3837F07CD47" 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_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_0A46B7BB771545D17CE1E3837F07CD47_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_0A46B7BB771545D17CE1E3837F07CD47" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments, Due in Five Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_0A46B7BB771545D17CE1E3837F07CD47" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_0A46B7BB771545D17CE1E3837F07CD47" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_0A46B7BB771545D17CE1E3837F07CD47" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_6B3ED8A7FC32AF343B4CE3837F07D236_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_6B3ED8A7FC32AF343B4CE3837F07D236" 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_OperatingLeasesFutureMinimumPaymentsDueThereafter_6B3ED8A7FC32AF343B4CE3837F07D236_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_6B3ED8A7FC32AF343B4CE3837F07D236" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments, Due Thereafter</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_6B3ED8A7FC32AF343B4CE3837F07D236" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_6B3ED8A7FC32AF343B4CE3837F07D236" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_6B3ED8A7FC32AF343B4CE3837F07D236" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_1AD7599612F1A091451EE3837F07BB8F_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_1AD7599612F1A091451EE3837F07BB8F" 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_OperatingLeasesFutureMinimumPaymentsDue_1AD7599612F1A091451EE3837F07BB8F_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_1AD7599612F1A091451EE3837F07BB8F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Future Minimum Payments Due</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_1AD7599612F1A091451EE3837F07BB8F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_1AD7599612F1A091451EE3837F07BB8F" xlink:to="lab_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_1AD7599612F1A091451EE3837F07BB8F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_5DD356CAB88CAD74AD54FA5C20D6587C_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_5DD356CAB88CAD74AD54FA5C20D6587C" 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_5DD356CAB88CAD74AD54FA5C20D6587C_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_5DD356CAB88CAD74AD54FA5C20D6587C" 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_5DD356CAB88CAD74AD54FA5C20D6587C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_5DD356CAB88CAD74AD54FA5C20D6587C" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_5DD356CAB88CAD74AD54FA5C20D6587C" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_4AA278AA420C32154294FA5C20D63777_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_4AA278AA420C32154294FA5C20D63777" 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_4AA278AA420C32154294FA5C20D63777_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_4AA278AA420C32154294FA5C20D63777" 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_4AA278AA420C32154294FA5C20D63777" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_4AA278AA420C32154294FA5C20D63777" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_4AA278AA420C32154294FA5C20D63777" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5110BD5E31D5430F0345FA5C20D62A4B_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5110BD5E31D5430F0345FA5C20D62A4B" 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_5110BD5E31D5430F0345FA5C20D62A4B_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5110BD5E31D5430F0345FA5C20D62A4B" 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_5110BD5E31D5430F0345FA5C20D62A4B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5110BD5E31D5430F0345FA5C20D62A4B" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5110BD5E31D5430F0345FA5C20D62A4B" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_BBA4ACA5D2290E936656FA5C20D7254F_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_BBA4ACA5D2290E936656FA5C20D7254F" 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_BBA4ACA5D2290E936656FA5C20D7254F_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_BBA4ACA5D2290E936656FA5C20D7254F" 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_BBA4ACA5D2290E936656FA5C20D7254F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_BBA4ACA5D2290E936656FA5C20D7254F" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_BBA4ACA5D2290E936656FA5C20D7254F" xlink:type="arc" />
    <link:label id="lab_us-gaap_NumberOfBusinessesAcquired_411F13153E0D7CC6008AE44DB0C11DD5_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfBusinessesAcquired_411F13153E0D7CC6008AE44DB0C11DD5" 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_411F13153E0D7CC6008AE44DB0C11DD5_label_en-US" xlink:label="lab_us-gaap_NumberOfBusinessesAcquired_411F13153E0D7CC6008AE44DB0C11DD5" 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_411F13153E0D7CC6008AE44DB0C11DD5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NumberOfBusinessesAcquired_411F13153E0D7CC6008AE44DB0C11DD5" xlink:to="lab_us-gaap_NumberOfBusinessesAcquired_411F13153E0D7CC6008AE44DB0C11DD5" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_D9A743FB17B2F01BAE5AFA5C25DC5A73_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_D9A743FB17B2F01BAE5AFA5C25DC5A73" 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_D9A743FB17B2F01BAE5AFA5C25DC5A73_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_D9A743FB17B2F01BAE5AFA5C25DC5A73" 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_D9A743FB17B2F01BAE5AFA5C25DC5A73" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_D9A743FB17B2F01BAE5AFA5C25DC5A73" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_D9A743FB17B2F01BAE5AFA5C25DC5A73" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_4886F7F738AAAAE208A8CD8DA2536693_label_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract_4886F7F738AAAAE208A8CD8DA2536693" 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_4886F7F738AAAAE208A8CD8DA2536693" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_4886F7F738AAAAE208A8CD8DA2536693" xlink:to="lab_us-gaap_StatementOfCashFlowsAbstract_4886F7F738AAAAE208A8CD8DA2536693" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_7BC5EF10E1A48FD9FC45CD8DA253E791_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_7BC5EF10E1A48FD9FC45CD8DA253E791" 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_7BC5EF10E1A48FD9FC45CD8DA253E791_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_7BC5EF10E1A48FD9FC45CD8DA253E791" 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_7BC5EF10E1A48FD9FC45CD8DA253E791" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_7BC5EF10E1A48FD9FC45CD8DA253E791" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_7BC5EF10E1A48FD9FC45CD8DA253E791" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" 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_A31B8F7E76E1B8AE9196CD8DA2536041_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" 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_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:type="arc" />
    <link:label id="lab_us-gaap_GainLossOnSaleOfBusiness_4EA0A2416174A4CEC0E5CD8DA259954B_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfBusiness_4EA0A2416174A4CEC0E5CD8DA259954B" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Loss on sale of discontinued business</link:label>
    <link:label id="lab_us-gaap_GainLossOnSaleOfBusiness_4EA0A2416174A4CEC0E5CD8DA259954B_label_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfBusiness_4EA0A2416174A4CEC0E5CD8DA259954B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gain (Loss) on Disposition of Business</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GainLossOnSaleOfBusiness" xlink:label="loc_us-gaap_GainLossOnSaleOfBusiness_4EA0A2416174A4CEC0E5CD8DA259954B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnSaleOfBusiness_4EA0A2416174A4CEC0E5CD8DA259954B" xlink:to="lab_us-gaap_GainLossOnSaleOfBusiness_4EA0A2416174A4CEC0E5CD8DA259954B" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockOptionPlanExpense_B40E5F961A8743406B8DCD8DA25916B0_terseLabel_en-US" xlink:label="lab_us-gaap_StockOptionPlanExpense_B40E5F961A8743406B8DCD8DA25916B0" 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_B40E5F961A8743406B8DCD8DA25916B0_label_en-US" xlink:label="lab_us-gaap_StockOptionPlanExpense_B40E5F961A8743406B8DCD8DA25916B0" 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_B40E5F961A8743406B8DCD8DA25916B0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockOptionPlanExpense_B40E5F961A8743406B8DCD8DA25916B0" xlink:to="lab_us-gaap_StockOptionPlanExpense_B40E5F961A8743406B8DCD8DA25916B0" xlink:type="arc" />
    <link:label id="lab_us-gaap_Depreciation_BE88762BF94343E90BC4CD8DA2599935_terseLabel_en-US" xlink:label="lab_us-gaap_Depreciation_BE88762BF94343E90BC4CD8DA2599935" 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_BE88762BF94343E90BC4CD8DA2599935_label_en-US" xlink:label="lab_us-gaap_Depreciation_BE88762BF94343E90BC4CD8DA2599935" 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_BE88762BF94343E90BC4CD8DA2599935" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Depreciation_BE88762BF94343E90BC4CD8DA2599935" xlink:to="lab_us-gaap_Depreciation_BE88762BF94343E90BC4CD8DA2599935" xlink:type="arc" />
    <link:label id="lab_us-gaap_AmortizationOfIntangibleAssets_CEE52CCF7A04258D5E99CD8DA25A3111_terseLabel_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets_CEE52CCF7A04258D5E99CD8DA25A3111" 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_CEE52CCF7A04258D5E99CD8DA25A3111_label_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets_CEE52CCF7A04258D5E99CD8DA25A3111" 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_CEE52CCF7A04258D5E99CD8DA25A3111" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AmortizationOfIntangibleAssets_CEE52CCF7A04258D5E99CD8DA25A3111" xlink:to="lab_us-gaap_AmortizationOfIntangibleAssets_CEE52CCF7A04258D5E99CD8DA25A3111" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetImpairmentCharges_6F71B56596C3D1239A62CD8DA25A7BAE_terseLabel_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges_6F71B56596C3D1239A62CD8DA25A7BAE" 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_6F71B56596C3D1239A62CD8DA25A7BAE_label_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges_6F71B56596C3D1239A62CD8DA25A7BAE" 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_6F71B56596C3D1239A62CD8DA25A7BAE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetImpairmentCharges_6F71B56596C3D1239A62CD8DA25A7BAE" xlink:to="lab_us-gaap_AssetImpairmentCharges_6F71B56596C3D1239A62CD8DA25A7BAE" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_F689E68DD773FA597515CD8DA25A7112_negatedLabel_en-US" xlink:label="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_F689E68DD773FA597515CD8DA25A7112" 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_F689E68DD773FA597515CD8DA25A7112_label_en-US" xlink:label="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_F689E68DD773FA597515CD8DA25A7112" 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_F689E68DD773FA597515CD8DA25A7112" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_F689E68DD773FA597515CD8DA25A7112" xlink:to="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_F689E68DD773FA597515CD8DA25A7112" xlink:type="arc" />
    <link:label id="lab_us-gaap_GainLossOnSaleOfInvestments_345717D635F065D0296CCD8DA25AD650_negatedLabel_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfInvestments_345717D635F065D0296CCD8DA25AD650" 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_345717D635F065D0296CCD8DA25AD650_label_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfInvestments_345717D635F065D0296CCD8DA25AD650" 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_345717D635F065D0296CCD8DA25AD650" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnSaleOfInvestments_345717D635F065D0296CCD8DA25AD650" xlink:to="lab_us-gaap_GainLossOnSaleOfInvestments_345717D635F065D0296CCD8DA25AD650" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_AC2B969F092D45E67679CD8DA25BE035_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_AC2B969F092D45E67679CD8DA25BE035" 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_AC2B969F092D45E67679CD8DA25BE035_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_AC2B969F092D45E67679CD8DA25BE035" 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_AC2B969F092D45E67679CD8DA25BE035" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_AC2B969F092D45E67679CD8DA25BE035" xlink:to="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_AC2B969F092D45E67679CD8DA25BE035" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_9610073A4BD5F781C257CD8DA25BC962_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_9610073A4BD5F781C257CD8DA25BC962" 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_9610073A4BD5F781C257CD8DA25BC962_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_9610073A4BD5F781C257CD8DA25BC962" 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_9610073A4BD5F781C257CD8DA25BC962" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_9610073A4BD5F781C257CD8DA25BC962" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_9610073A4BD5F781C257CD8DA25BC962" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInUnbilledReceivables_0F6FBAEFB2D8C78EDDEBCD8DA25B900E_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInUnbilledReceivables_0F6FBAEFB2D8C78EDDEBCD8DA25B900E" 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_0F6FBAEFB2D8C78EDDEBCD8DA25B900E_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInUnbilledReceivables_0F6FBAEFB2D8C78EDDEBCD8DA25B900E" 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_0F6FBAEFB2D8C78EDDEBCD8DA25B900E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInUnbilledReceivables_0F6FBAEFB2D8C78EDDEBCD8DA25B900E" xlink:to="lab_us-gaap_IncreaseDecreaseInUnbilledReceivables_0F6FBAEFB2D8C78EDDEBCD8DA25B900E" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_43EA5CD405113CD64D9ECD8DA25BE71F_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories_43EA5CD405113CD64D9ECD8DA25BE71F" 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_43EA5CD405113CD64D9ECD8DA25BE71F_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories_43EA5CD405113CD64D9ECD8DA25BE71F" 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_43EA5CD405113CD64D9ECD8DA25BE71F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInInventories_43EA5CD405113CD64D9ECD8DA25BE71F" xlink:to="lab_us-gaap_IncreaseDecreaseInInventories_43EA5CD405113CD64D9ECD8DA25BE71F" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_885EC5F43DF4210B5192CD8DA25BE314_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_885EC5F43DF4210B5192CD8DA25BE314" 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_885EC5F43DF4210B5192CD8DA25BE314_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_885EC5F43DF4210B5192CD8DA25BE314" 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_885EC5F43DF4210B5192CD8DA25BE314" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_885EC5F43DF4210B5192CD8DA25BE314" xlink:to="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_885EC5F43DF4210B5192CD8DA25BE314" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_F6FF9D334AA6B17DC86BCD8DA25C21A1_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable_F6FF9D334AA6B17DC86BCD8DA25C21A1" 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_F6FF9D334AA6B17DC86BCD8DA25C21A1_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable_F6FF9D334AA6B17DC86BCD8DA25C21A1" 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_F6FF9D334AA6B17DC86BCD8DA25C21A1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsPayable_F6FF9D334AA6B17DC86BCD8DA25C21A1" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsPayable_F6FF9D334AA6B17DC86BCD8DA25C21A1" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_A1466F4A4F3CF57459E6CD8DA25CE40F_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_A1466F4A4F3CF57459E6CD8DA25CE40F" 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_A1466F4A4F3CF57459E6CD8DA25CE40F_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_A1466F4A4F3CF57459E6CD8DA25CE40F" 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_A1466F4A4F3CF57459E6CD8DA25CE40F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_A1466F4A4F3CF57459E6CD8DA25CE40F" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_A1466F4A4F3CF57459E6CD8DA25CE40F" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_96DEE05D8A40242C5D46CD8DA25CE64B_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_96DEE05D8A40242C5D46CD8DA25CE64B" 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_96DEE05D8A40242C5D46CD8DA25CE64B_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_96DEE05D8A40242C5D46CD8DA25CE64B" 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_96DEE05D8A40242C5D46CD8DA25CE64B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_96DEE05D8A40242C5D46CD8DA25CE64B" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_96DEE05D8A40242C5D46CD8DA25CE64B" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_024A463D89038C13E667CD8DA25C2326_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_024A463D89038C13E667CD8DA25C2326" 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_024A463D89038C13E667CD8DA25C2326_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_024A463D89038C13E667CD8DA25C2326" 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_024A463D89038C13E667CD8DA25C2326" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_024A463D89038C13E667CD8DA25C2326" xlink:to="lab_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_024A463D89038C13E667CD8DA25C2326" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2A64F95011652035A166CD8DA25CF12C_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2A64F95011652035A166CD8DA25CF12C" 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_2A64F95011652035A166CD8DA25CF12C_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2A64F95011652035A166CD8DA25CF12C" 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_2A64F95011652035A166CD8DA25CF12C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2A64F95011652035A166CD8DA25CF12C" xlink:to="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2A64F95011652035A166CD8DA25CF12C" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_0D12F25D255FF7D1AF9ECD8DA25C5996_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_0D12F25D255FF7D1AF9ECD8DA25C5996" 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_0D12F25D255FF7D1AF9ECD8DA25C5996" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_0D12F25D255FF7D1AF9ECD8DA25C5996" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_0D12F25D255FF7D1AF9ECD8DA25C5996" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_6764E7259A267969D6A7CD8DA25DCF13_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_6764E7259A267969D6A7CD8DA25DCF13" 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_6764E7259A267969D6A7CD8DA25DCF13_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_6764E7259A267969D6A7CD8DA25DCF13" 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_6764E7259A267969D6A7CD8DA25DCF13" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_6764E7259A267969D6A7CD8DA25DCF13" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_6764E7259A267969D6A7CD8DA25DCF13" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsToAcquireInvestments_4366CBEC27E5720327C9CD8DA25DA28E_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireInvestments_4366CBEC27E5720327C9CD8DA25DA28E" 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_4366CBEC27E5720327C9CD8DA25DA28E_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireInvestments_4366CBEC27E5720327C9CD8DA25DA28E" 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_4366CBEC27E5720327C9CD8DA25DA28E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireInvestments_4366CBEC27E5720327C9CD8DA25DA28E" xlink:to="lab_us-gaap_PaymentsToAcquireInvestments_4366CBEC27E5720327C9CD8DA25DA28E" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4C996F4DD645AD2F366ECD8DA25D6308_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4C996F4DD645AD2F366ECD8DA25D6308" 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_4C996F4DD645AD2F366ECD8DA25D6308_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4C996F4DD645AD2F366ECD8DA25D6308" 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_4C996F4DD645AD2F366ECD8DA25D6308" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4C996F4DD645AD2F366ECD8DA25D6308" xlink:to="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4C996F4DD645AD2F366ECD8DA25D6308" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_38CB5456FD5CC964B4CDCD8DA25DCF21_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_38CB5456FD5CC964B4CDCD8DA25DCF21" 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_38CB5456FD5CC964B4CDCD8DA25DCF21_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_38CB5456FD5CC964B4CDCD8DA25DCF21" 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_38CB5456FD5CC964B4CDCD8DA25DCF21" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_38CB5456FD5CC964B4CDCD8DA25DCF21" xlink:to="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_38CB5456FD5CC964B4CDCD8DA25DCF21" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_3E3BF3AE05968B8BD864CD8DA25E4971_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_3E3BF3AE05968B8BD864CD8DA25E4971" 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_3E3BF3AE05968B8BD864CD8DA25E4971_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_3E3BF3AE05968B8BD864CD8DA25E4971" 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_3E3BF3AE05968B8BD864CD8DA25E4971" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_3E3BF3AE05968B8BD864CD8DA25E4971" xlink:to="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_3E3BF3AE05968B8BD864CD8DA25E4971" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_263D163DC70CC8E29BDACD8DA25ED86C_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_263D163DC70CC8E29BDACD8DA25ED86C" 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_263D163DC70CC8E29BDACD8DA25ED86C_label_en-US" xlink:label="lab_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_263D163DC70CC8E29BDACD8DA25ED86C" 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_263D163DC70CC8E29BDACD8DA25ED86C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_263D163DC70CC8E29BDACD8DA25ED86C" xlink:to="lab_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_263D163DC70CC8E29BDACD8DA25ED86C" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_1ED674322FE3089D84A9CD8DA25E26D9_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_1ED674322FE3089D84A9CD8DA25E26D9" 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_1ED674322FE3089D84A9CD8DA25E26D9_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_1ED674322FE3089D84A9CD8DA25E26D9" 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_1ED674322FE3089D84A9CD8DA25E26D9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_1ED674322FE3089D84A9CD8DA25E26D9" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_1ED674322FE3089D84A9CD8DA25E26D9" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9622FA17BF27612048B9CD8DA25E778B_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9622FA17BF27612048B9CD8DA25E778B" 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_9622FA17BF27612048B9CD8DA25E778B_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9622FA17BF27612048B9CD8DA25E778B" 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_9622FA17BF27612048B9CD8DA25E778B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9622FA17BF27612048B9CD8DA25E778B" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9622FA17BF27612048B9CD8DA25E778B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_365549006F79B9606CB0CD8DA25E0274_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_365549006F79B9606CB0CD8DA25E0274" 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_365549006F79B9606CB0CD8DA25E0274_label_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_365549006F79B9606CB0CD8DA25E0274" 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_365549006F79B9606CB0CD8DA25E0274" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_365549006F79B9606CB0CD8DA25E0274" xlink:to="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_365549006F79B9606CB0CD8DA25E0274" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_599FF7363833E08443F6CD8DA25F41B6_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_599FF7363833E08443F6CD8DA25F41B6" 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_599FF7363833E08443F6CD8DA25F41B6_label_en-US" xlink:label="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_599FF7363833E08443F6CD8DA25F41B6" 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_599FF7363833E08443F6CD8DA25F41B6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_599FF7363833E08443F6CD8DA25F41B6" xlink:to="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_599FF7363833E08443F6CD8DA25F41B6" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsOfDividendsCommonStock_48D0714DB082E84A9D44CD8DA25F5B7C_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock_48D0714DB082E84A9D44CD8DA25F5B7C" 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_48D0714DB082E84A9D44CD8DA25F5B7C_label_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock_48D0714DB082E84A9D44CD8DA25F5B7C" 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_48D0714DB082E84A9D44CD8DA25F5B7C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfDividendsCommonStock_48D0714DB082E84A9D44CD8DA25F5B7C" xlink:to="lab_us-gaap_PaymentsOfDividendsCommonStock_48D0714DB082E84A9D44CD8DA25F5B7C" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsForPreviousAcquisition_9AE4D1AC64F7367C5C1ACD8DA25F6B93_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsForPreviousAcquisition_9AE4D1AC64F7367C5C1ACD8DA25F6B93" 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_9AE4D1AC64F7367C5C1ACD8DA25F6B93" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForPreviousAcquisition_9AE4D1AC64F7367C5C1ACD8DA25F6B93" xlink:to="lab_us-gaap_PaymentsForPreviousAcquisition_9AE4D1AC64F7367C5C1ACD8DA25F6B93" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_05F88D3BF3E085BC6637CD8DA25FC21A_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_05F88D3BF3E085BC6637CD8DA25FC21A" 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_05F88D3BF3E085BC6637CD8DA25FC21A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_05F88D3BF3E085BC6637CD8DA25FC21A" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_05F88D3BF3E085BC6637CD8DA25FC21A" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_33EF1F5871E042D1F7A5CD8DA25FB38E_terseLabel_en-US" xlink:label="lab_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_33EF1F5871E042D1F7A5CD8DA25FB38E" 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_33EF1F5871E042D1F7A5CD8DA25FB38E_label_en-US" xlink:label="lab_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_33EF1F5871E042D1F7A5CD8DA25FB38E" 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_33EF1F5871E042D1F7A5CD8DA25FB38E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_33EF1F5871E042D1F7A5CD8DA25FB38E" xlink:to="lab_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_33EF1F5871E042D1F7A5CD8DA25FB38E" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_A0CD12063B836A7D05D0CD8DA2600F4F_totalLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_A0CD12063B836A7D05D0CD8DA2600F4F" 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_A0CD12063B836A7D05D0CD8DA2600F4F_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_A0CD12063B836A7D05D0CD8DA2600F4F" 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_A0CD12063B836A7D05D0CD8DA2600F4F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_A0CD12063B836A7D05D0CD8DA2600F4F" xlink:to="lab_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_A0CD12063B836A7D05D0CD8DA2600F4F" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_36DEEB5D9B3CAC471B62CD8DA260B599_periodStartLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_36DEEB5D9B3CAC471B62CD8DA260B599" 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_36DEEB5D9B3CAC471B62CD8DA260B599" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_36DEEB5D9B3CAC471B62CD8DA260B599" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_36DEEB5D9B3CAC471B62CD8DA260B599" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_A181EF4DD91C09D4961CCD8DA260450C_periodEndLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_A181EF4DD91C09D4961CCD8DA260450C" 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_A181EF4DD91C09D4961CCD8DA260450C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_A181EF4DD91C09D4961CCD8DA260450C" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_A181EF4DD91C09D4961CCD8DA260450C" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_8E21BB87EAF1B1A738CAFA5C2319F39B_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock_8E21BB87EAF1B1A738CAFA5C2319F39B" 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_8E21BB87EAF1B1A738CAFA5C2319F39B_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock_8E21BB87EAF1B1A738CAFA5C2319F39B" 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_8E21BB87EAF1B1A738CAFA5C2319F39B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareTextBlock_8E21BB87EAF1B1A738CAFA5C2319F39B" xlink:to="lab_us-gaap_EarningsPerShareTextBlock_8E21BB87EAF1B1A738CAFA5C2319F39B" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_783A233C3A07AAE085E0FA5C230FDE03_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_783A233C3A07AAE085E0FA5C230FDE03" 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_783A233C3A07AAE085E0FA5C230FDE03" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_783A233C3A07AAE085E0FA5C230FDE03" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_783A233C3A07AAE085E0FA5C230FDE03" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_9413271FC3F1A26AE265FA5C230FC71C_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_9413271FC3F1A26AE265FA5C230FC71C" 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_9413271FC3F1A26AE265FA5C230FC71C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_9413271FC3F1A26AE265FA5C230FC71C" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_9413271FC3F1A26AE265FA5C230FC71C" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_A33FDDE7E070D34BF27DFA5C230F53F9_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_A33FDDE7E070D34BF27DFA5C230F53F9" 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_A33FDDE7E070D34BF27DFA5C230F53F9_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_A33FDDE7E070D34BF27DFA5C230F53F9" 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_A33FDDE7E070D34BF27DFA5C230F53F9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_A33FDDE7E070D34BF27DFA5C230F53F9" xlink:to="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_A33FDDE7E070D34BF27DFA5C230F53F9" xlink:type="arc" />
    <link:label id="lab_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247_terseLabel_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" 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_DD7C76C90F3CE849A438E39C84326247_label_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" 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_DD7C76C90F3CE849A438E39C84326247_documentation_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" 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-20181231.xsd#cgnx_RevenuePaymentTerms" xlink:label="loc_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" xlink:to="lab_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" xlink:type="arc" />
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>13
<FILENAME>cgnx-20181231_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-20181231.xsd#AccruedExpenses" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail" xlink:href="cgnx-20181231.xsd#AccruedExpensesChangesInWarrantyObligationsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:href="cgnx-20181231.xsd#AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesTables" xlink:href="cgnx-20181231.xsd#AccruedExpensesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Acquisitions" xlink:href="cgnx-20181231.xsd#Acquisitions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsAcquisitionsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsTables" xlink:href="cgnx-20181231.xsd#AcquisitionsAcquisitionsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAqsenseSLNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsAqsenseSLNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAqsenseSLPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsAqsenseSLPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsChiaroTechnologiesLlcDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsEnshapeGmbhNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsEnshapeGmbhNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsGviVenturesIncDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsManateeWorksIncNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsManateeWorksIncNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSADetails" xlink:href="cgnx-20181231.xsd#AcquisitionsVidiSystemsSADetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsWebscanIncNarrativeDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsWebscanIncNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsWebscanIncPurchasePriceAllocationDetails" xlink:href="cgnx-20181231.xsd#AcquisitionsWebscanIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestments" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables" xlink:href="cgnx-20181231.xsd#CashCashEquivalentsAndInvestmentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingencies" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesTables" xlink:href="cgnx-20181231.xsd#CommitmentsAndContingenciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheets" xlink:href="cgnx-20181231.xsd#ConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfCashFlows" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfComprehensiveIncome" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperations" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfOperationsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:href="cgnx-20181231.xsd#ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstruments" xlink:href="cgnx-20181231.xsd#DerivativeInstruments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsChangesInAociDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsTables" xlink:href="cgnx-20181231.xsd#DerivativeInstrumentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperations" xlink:href="cgnx-20181231.xsd#DiscontinuedOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperationsDetails" xlink:href="cgnx-20181231.xsd#DiscontinuedOperationsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" xlink:href="cgnx-20181231.xsd#DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DiscontinuedOperationsTables" xlink:href="cgnx-20181231.xsd#DiscontinuedOperationsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DocumentAndEntityInformation" xlink:href="cgnx-20181231.xsd#DocumentAndEntityInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlan" xlink:href="cgnx-20181231.xsd#EmployeeSavingsPlan" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurements" xlink:href="cgnx-20181231.xsd#FairValueMeasurements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:href="cgnx-20181231.xsd#FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:href="cgnx-20181231.xsd#FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsTables" xlink:href="cgnx-20181231.xsd#FairValueMeasurementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Goodwill" xlink:href="cgnx-20181231.xsd#Goodwill" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:href="cgnx-20181231.xsd#GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillTables" xlink:href="cgnx-20181231.xsd#GoodwillTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisions" xlink:href="cgnx-20181231.xsd#IndemnificationProvisions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails" xlink:href="cgnx-20181231.xsd#IndemnificationProvisionsNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssets" xlink:href="cgnx-20181231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:href="cgnx-20181231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:href="cgnx-20181231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsTables" xlink:href="cgnx-20181231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Inventories" xlink:href="cgnx-20181231.xsd#Inventories" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:href="cgnx-20181231.xsd#InventoriesInventoriesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesTables" xlink:href="cgnx-20181231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncements" xlink:href="cgnx-20181231.xsd#NewPronouncements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncementsDetails" xlink:href="cgnx-20181231.xsd#NewPronouncementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipment" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentTables" xlink:href="cgnx-20181231.xsd#PropertyPlantAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognition" xlink:href="cgnx-20181231.xsd#RevenueRecognition" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionBalanceSheetImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionNarrativesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails" xlink:href="cgnx-20181231.xsd#RevenueRecognitionStatementOfOperationsImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionTables" xlink:href="cgnx-20181231.xsd#RevenueRecognitionTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts" xlink:href="cgnx-20181231.xsd#ScheduleIiValuationAndQualifyingAccounts" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail" xlink:href="cgnx-20181231.xsd#ScheduleIiValuationAndQualifyingAccountsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformation" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformationAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationTables" xlink:href="cgnx-20181231.xsd#SegmentAndGeographicInformationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited" xlink:href="cgnx-20181231.xsd#SelectedQuarterlyFinancialDataUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails" xlink:href="cgnx-20181231.xsd#SelectedQuarterlyFinancialDataUnauditedDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables" xlink:href="cgnx-20181231.xsd#SelectedQuarterlyFinancialDataUnauditedTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquity" xlink:href="cgnx-20181231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensation" xlink:href="cgnx-20181231.xsd#StockBasedCompensation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:href="cgnx-20181231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationTables" xlink:href="cgnx-20181231.xsd#StockBasedCompensationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEvents" xlink:href="cgnx-20181231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:href="cgnx-20181231.xsd#SubsequentEventsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:href="cgnx-20181231.xsd#SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Taxes" xlink:href="cgnx-20181231.xsd#Taxes" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesAdditionalInformationDetails" xlink:href="cgnx-20181231.xsd#TaxesAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:href="cgnx-20181231.xsd#TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:href="cgnx-20181231.xsd#TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:href="cgnx-20181231.xsd#TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:href="cgnx-20181231.xsd#TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesTables" xlink:href="cgnx-20181231.xsd#TaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageShares" xlink:href="cgnx-20181231.xsd#WeightedAverageShares" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:href="cgnx-20181231.xsd#WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:href="cgnx-20181231.xsd#WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesTables" xlink:href="cgnx-20181231.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_0531CE682CEBB995541DFA5C266EB7DD" 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_BEC80090B92FD70A6917FA5C266E32FB" 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_0531CE682CEBB995541DFA5C266EB7DD" xlink:to="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_BEC80090B92FD70A6917FA5C266E32FB" 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_466F30EDE393222C8437FA5C20E8FF16" 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_4D8B64413B7F36A8E7C4FA5C20E81682" 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_466F30EDE393222C8437FA5C20E8FF16" xlink:to="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4D8B64413B7F36A8E7C4FA5C20E81682" 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_426F6447EBB99300AF6AFA5C20E9C2C1" 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_4D8B64413B7F36A8E7C4FA5C20E81682" xlink:to="loc_us-gaap_ProductWarrantyAccrual_426F6447EBB99300AF6AFA5C20E9C2C1" 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_0653CB7BE442B41EF4C0FA5C20E9C04B" 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_4D8B64413B7F36A8E7C4FA5C20E81682" xlink:to="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_0653CB7BE442B41EF4C0FA5C20E9C04B" 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_639508057AA7B6A05CE5FA5C20E9153A" 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_4D8B64413B7F36A8E7C4FA5C20E81682" xlink:to="loc_us-gaap_ProductWarrantyAccrualPayments_639508057AA7B6A05CE5FA5C20E9153A" 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_7EBF3F742D76E5796369FA5C20E91718" 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_4D8B64413B7F36A8E7C4FA5C20E81682" xlink:to="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7EBF3F742D76E5796369FA5C20E91718" 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_A649DB3E9461A246D295FA5C20E9D8B3" 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_4D8B64413B7F36A8E7C4FA5C20E81682" xlink:to="loc_us-gaap_ProductWarrantyAccrual_A649DB3E9461A246D295FA5C20E9D8B3" 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_30B7E6EBCC6531146FBF966505237542" 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_ADA26D4BC2AE2B9F37F596650524C1EB" 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_30B7E6EBCC6531146FBF966505237542" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_ADA26D4BC2AE2B9F37F596650524C1EB" 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_822B6D48CF7CFF49165696650524B97C" 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_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:to="loc_us-gaap_AccruedSalariesCurrent_822B6D48CF7CFF49165696650524B97C" 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_5D902354A2710BA2E83E966505246098" 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_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:to="loc_us-gaap_AccruedBonusesCurrent_5D902354A2710BA2E83E966505246098" 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_2F7146DE38C3B6C62707966505245824" 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_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:to="loc_us-gaap_AccruedVacationCurrent_2F7146DE38C3B6C62707966505245824" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RetirementAllowance" xlink:label="loc_cgnx_RetirementAllowance_EE68EBF581FFC63DB63996650525D596" 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_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:to="loc_cgnx_RetirementAllowance_EE68EBF581FFC63DB63996650525D596" 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_C42AE08D557EF7F9D80E96650525B66A" 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_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:to="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_C42AE08D557EF7F9D80E96650525B66A" 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_4D98959701F2FE39200596650524F43A" 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_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:to="loc_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_4D98959701F2FE39200596650524F43A" 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_3B135CA72632FF0BB12E96650525BA07" 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_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrent_3B135CA72632FF0BB12E96650525BA07" 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_6D887CA8E12834AFA5BA96650525B5CB" 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_ADA26D4BC2AE2B9F37F596650524C1EB" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_6D887CA8E12834AFA5BA96650525B5CB" 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_953E0262814FDC2536B4FA5C25CBA58D" 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_71687C26E328F03C71F7FA5C25CBBCAC" 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_953E0262814FDC2536B4FA5C25CBA58D" xlink:to="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_71687C26E328F03C71F7FA5C25CBBCAC" 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_68432089DA8AA81D2B4AFA5C25CCF39A" 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_953E0262814FDC2536B4FA5C25CBA58D" xlink:to="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_68432089DA8AA81D2B4AFA5C25CCF39A" 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_27BC74A36F8A3098694FE44D1703907D" 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_C9D993C48824F6DB4385E446694BB35E" 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_27BC74A36F8A3098694FE44D1703907D" xlink:to="loc_us-gaap_BusinessCombinationDisclosureTextBlock_C9D993C48824F6DB4385E446694BB35E" 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_50BBD802DE6BD60859E9E44DB0B68E18" 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_68611608C23EFCCF6256E4466946533E" 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_50BBD802DE6BD60859E9E44DB0B68E18" xlink:to="loc_us-gaap_NumberOfBusinessesAcquired_68611608C23EFCCF6256E4466946533E" 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_A513D83B7ED25A8C23D8E44D7A73C9BD" 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_38AEA8A6EC807180B5EBE44669492C21" 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_A513D83B7ED25A8C23D8E44D7A73C9BD" xlink:to="loc_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_38AEA8A6EC807180B5EBE44669492C21" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsAqsenseSLNarrativeDetails" 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_7BED7BFF631A76AC9436FA5C22BD0543" 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_9B8216E0FFDB2EFE63FEFA5C22BD6AA7" 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_7BED7BFF631A76AC9436FA5C22BD0543" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_9B8216E0FFDB2EFE63FEFA5C22BD6AA7" 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_DC8D67286DF8C178EA04FA5C22BD84F9" 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_9B8216E0FFDB2EFE63FEFA5C22BD6AA7" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_DC8D67286DF8C178EA04FA5C22BD84F9" 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_D8F23A1E108051AC85FBFA5C22BEF9C5" 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_DC8D67286DF8C178EA04FA5C22BD84F9" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D8F23A1E108051AC85FBFA5C22BEF9C5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AQSenseS.L.Member" xlink:label="loc_cgnx_AQSenseS.L.Member_22E8DCE24CDE20AA3F4BFA5C22BED709" 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_D8F23A1E108051AC85FBFA5C22BEF9C5" xlink:to="loc_cgnx_AQSenseS.L.Member_22E8DCE24CDE20AA3F4BFA5C22BED709" 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_D5ED47B6C76396EEF035FA5C22BEFB6B" 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_9B8216E0FFDB2EFE63FEFA5C22BD6AA7" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_D5ED47B6C76396EEF035FA5C22BEFB6B" 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_ED3B58EF33357856C4C7FA5C22BEF464" 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_D5ED47B6C76396EEF035FA5C22BEFB6B" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_ED3B58EF33357856C4C7FA5C22BEF464" 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_4042E86CF491BF316264FA5C22BFB4B8" 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_D5ED47B6C76396EEF035FA5C22BEFB6B" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_4042E86CF491BF316264FA5C22BFB4B8" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsAqsenseSLPurchasePriceAllocationDetails" 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_415F83951D46C94B76B3E44668D856EC" 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_CBBD7D83F9D28B4642E9E44668D9F343" 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_415F83951D46C94B76B3E44668D856EC" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_CBBD7D83F9D28B4642E9E44668D9F343" 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_FFC2B3D797459E5506FDE44668D9080C" 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_CBBD7D83F9D28B4642E9E44668D9F343" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_FFC2B3D797459E5506FDE44668D9080C" 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_6C62FAB9EF121189AB7AE44668D9A94C" 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_FFC2B3D797459E5506FDE44668D9080C" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6C62FAB9EF121189AB7AE44668D9A94C" 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_DBDAA712A1957C352ACEE44668D9C170" 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_6C62FAB9EF121189AB7AE44668D9A94C" xlink:to="loc_us-gaap_CustomerRelationshipsMember_DBDAA712A1957C352ACEE44668D9C170" 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_0D356158A78770A86C01E44668DA57DE" 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_6C62FAB9EF121189AB7AE44668D9A94C" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_0D356158A78770A86C01E44668DA57DE" 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_CA472D51ED33A8F5B608E44668DA539F" 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_CBBD7D83F9D28B4642E9E44668D9F343" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_CA472D51ED33A8F5B608E44668DA539F" 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_52303BFF2283845D73DBE44668DAF834" 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_CA472D51ED33A8F5B608E44668DA539F" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_52303BFF2283845D73DBE44668DAF834" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AQSenseS.L.Member" xlink:label="loc_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" 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_52303BFF2283845D73DBE44668DAF834" xlink:to="loc_cgnx_AQSenseS.L.Member_860D5E4269BC61AD1A53E44668DA72EC" 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_3A81FCAB72C9DBD7AD1BE44668DB87E3" 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_CBBD7D83F9D28B4642E9E44668D9F343" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_3A81FCAB72C9DBD7AD1BE44668DB87E3" 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_03C6716AF33F1EDD436BE44668DB22D6" 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_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_03C6716AF33F1EDD436BE44668DB22D6" 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_404511100B046D142235E44668DB3539" 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_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_404511100B046D142235E44668DB3539" 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_83BD214566D6080A96FAE44668DBADD9" 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_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_us-gaap_Goodwill_83BD214566D6080A96FAE44668DBADD9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_38FECB67865192077190E44668DB236A" 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_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_38FECB67865192077190E44668DB236A" 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_0A267D61DD77A10F0927E44668DCD3F8" 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_BusinessAcquisitionLineItems_3A81FCAB72C9DBD7AD1BE44668DB87E3" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_0A267D61DD77A10F0927E44668DCD3F8" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcDetails" 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_2D71524BA0F94BA61BB6E4466910D226" 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_410BC7E53D993A72747BE446691054CD" 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_2D71524BA0F94BA61BB6E4466910D226" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_410BC7E53D993A72747BE446691054CD" 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_F8D4A7273D5EBA1C61DCE44669117FB4" 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_410BC7E53D993A72747BE446691054CD" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_F8D4A7273D5EBA1C61DCE44669117FB4" 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_B355AF8407C8C4551240E4466911CDE6" 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_F8D4A7273D5EBA1C61DCE44669117FB4" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B355AF8407C8C4551240E4466911CDE6" 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_18AC40E3FDA0C859A473E44669113AD7" 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_B355AF8407C8C4551240E4466911CDE6" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_18AC40E3FDA0C859A473E44669113AD7" 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_C2CC83BE5AA5F3A7F567E4466912D390" 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_410BC7E53D993A72747BE446691054CD" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_C2CC83BE5AA5F3A7F567E4466912D390" 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_886F8F92B539E4D14708E44669125543" 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_C2CC83BE5AA5F3A7F567E4466912D390" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_886F8F92B539E4D14708E44669125543" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" 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_886F8F92B539E4D14708E44669125543" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_3F3037266ED5C067C7F7E44669128B6D" 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_B9F0111DE637740D4F4DE4466913A1EE" 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_410BC7E53D993A72747BE446691054CD" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_B9F0111DE637740D4F4DE4466913A1EE" 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_60B0CB388D8C7DB8F8FFE44669136EBE" 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_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_60B0CB388D8C7DB8F8FFE44669136EBE" 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_1212A06FC70FCD0DE462E446691331C7" 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_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_1212A06FC70FCD0DE462E446691331C7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670" 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_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_1C9043594CFEE7794918E4466913C670" 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_18A111A1631B13B4877CE4466913395D" 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_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_18A111A1631B13B4877CE4466913395D" 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_2291374B1F5E63A92CE5E44669139411" 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_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_2291374B1F5E63A92CE5E44669139411" 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_64813D0701326EE22390E4466914AEF4" 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_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_64813D0701326EE22390E4466914AEF4" 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_11C524301272BA8ABDC1E4466914482A" 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_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_11C524301272BA8ABDC1E4466914482A" 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_A6224CF50742A7068565E446691456EA" 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_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_A6224CF50742A7068565E446691456EA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_2270CA8A6EB18EFB13A1E4466914183E" 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_B9F0111DE637740D4F4DE4466913A1EE" xlink:to="loc_cgnx_Taxdeductiblegoodwill_2270CA8A6EB18EFB13A1E4466914183E" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails" 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_14AF90F7C86F65DC2F90E446690841A7" 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_EAA4E6767874D5CD80B5E4466908D3C5" 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_14AF90F7C86F65DC2F90E446690841A7" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_EAA4E6767874D5CD80B5E4466908D3C5" 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_C8FB018536B99BF4097EE44669083AC8" 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_EAA4E6767874D5CD80B5E4466908D3C5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C8FB018536B99BF4097EE44669083AC8" 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_5F65824FED374848FBC8E4466908755D" 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_C8FB018536B99BF4097EE44669083AC8" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_5F65824FED374848FBC8E4466908755D" 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_64D547EFD44AE09A9821E4466909D385" 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_5F65824FED374848FBC8E4466908755D" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_64D547EFD44AE09A9821E4466909D385" 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_2F4CD161443D1FE4A77DE44669095153" 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_EAA4E6767874D5CD80B5E4466908D3C5" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_2F4CD161443D1FE4A77DE44669095153" 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_295F6AE88DDFEC883771E446690962E9" 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_2F4CD161443D1FE4A77DE44669095153" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_295F6AE88DDFEC883771E446690962E9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_2F022D2FBCEFC3CCC502E446690900FB" 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_295F6AE88DDFEC883771E446690962E9" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_2F022D2FBCEFC3CCC502E446690900FB" 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_092F83327FBB7A5A9552E446690A9CC9" 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_EAA4E6767874D5CD80B5E4466908D3C5" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_092F83327FBB7A5A9552E446690A9CC9" 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_852A440082B8704E7DEBE446690AA374" 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_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_852A440082B8704E7DEBE446690AA374" 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_4CDEB810F723FBC44A1DE446690AAF7B" 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_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_4CDEB810F723FBC44A1DE446690AAF7B" 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_FE037AC78031DC1A7275E446690B8148" 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_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_us-gaap_Goodwill_FE037AC78031DC1A7275E446690B8148" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_E4ED7033F3DC2562BDE6E446690B153E" 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_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_E4ED7033F3DC2562BDE6E446690B153E" 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_075736012B19C0C9350BE446690B3B99" 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_BusinessAcquisitionLineItems_092F83327FBB7A5A9552E446690A9CC9" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_075736012B19C0C9350BE446690B3B99" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsEnshapeGmbhNarrativeDetails" 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_A426354D6D2E2F9BCA667807340A0F6E" 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_FE747FB44F8E2E11FC197807340A0A17" 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_A426354D6D2E2F9BCA667807340A0F6E" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_FE747FB44F8E2E11FC197807340A0A17" 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_F4AF83B04935F58AB7097807340AC8C4" 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_FE747FB44F8E2E11FC197807340A0A17" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_F4AF83B04935F58AB7097807340AC8C4" 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_29193C60D6BD34772E147807340B1CED" 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_F4AF83B04935F58AB7097807340AC8C4" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_29193C60D6BD34772E147807340B1CED" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EnShapeGmbHMember" xlink:label="loc_cgnx_EnShapeGmbHMember_D128DDE15677F7F24CF47807340C7C62" 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_29193C60D6BD34772E147807340B1CED" xlink:to="loc_cgnx_EnShapeGmbHMember_D128DDE15677F7F24CF47807340C7C62" 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_8CBC75851E00CBD8A17A7807340D0315" 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_FE747FB44F8E2E11FC197807340A0A17" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_8CBC75851E00CBD8A17A7807340D0315" 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_D31DFD4B275F38F8EF2F7807340E07BD" 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_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_D31DFD4B275F38F8EF2F7807340E07BD" 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_1064A6937422AA032BBE7807340EF998" 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_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_1064A6937422AA032BBE7807340EF998" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment" xlink:label="loc_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" 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_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment_DFB03F0F53059E3C6AAC7807340E291F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_886125A2045AA3F677CC7807340EC8A0" 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_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_886125A2045AA3F677CC7807340EC8A0" 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_7894F585A1C9904700CD7807340EFB0C" 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_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_7894F585A1C9904700CD7807340EFB0C" 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_A42D581E4FF16EBAF6977807340F8643" 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_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_A42D581E4FF16EBAF6977807340F8643" 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_2F7CD6AA7654B7F721FC7807340FAA84" 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_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_2F7CD6AA7654B7F721FC7807340FAA84" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_F9CC91868D3A858F75647807340F855B" 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_8CBC75851E00CBD8A17A7807340D0315" xlink:to="loc_cgnx_Taxdeductiblegoodwill_F9CC91868D3A858F75647807340F855B" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails" 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_89E9CE194BD1BD88AEC5E44668E8154B" 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_FCA0C07E6DC3FE4770F2E44668E94C94" 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_89E9CE194BD1BD88AEC5E44668E8154B" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_FCA0C07E6DC3FE4770F2E44668E94C94" 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_3DCEE5477181DC28388AE44668E9B1E9" 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_FCA0C07E6DC3FE4770F2E44668E94C94" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3DCEE5477181DC28388AE44668E9B1E9" 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_508867AAAF651C022ED3E44668E9880C" 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_3DCEE5477181DC28388AE44668E9B1E9" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_508867AAAF651C022ED3E44668E9880C" 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_0E45A055A90530250FD5E44668E96107" 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_508867AAAF651C022ED3E44668E9880C" xlink:to="loc_us-gaap_CustomerRelationshipsMember_0E45A055A90530250FD5E44668E96107" 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_BE38F41610CF3384672AE44668EA949E" 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_508867AAAF651C022ED3E44668E9880C" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_BE38F41610CF3384672AE44668EA949E" 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_5B79A382F36D7D88337DE44668EA2E06" 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_FCA0C07E6DC3FE4770F2E44668E94C94" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_5B79A382F36D7D88337DE44668EA2E06" 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_8A879CF5085C6E91BC07E44668EA45CA" 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_5B79A382F36D7D88337DE44668EA2E06" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8A879CF5085C6E91BC07E44668EA45CA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EnShapeGmbHMember" xlink:label="loc_cgnx_EnShapeGmbHMember_30B60358EAC69D15F852E44668EA6153" 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_8A879CF5085C6E91BC07E44668EA45CA" xlink:to="loc_cgnx_EnShapeGmbHMember_30B60358EAC69D15F852E44668EA6153" 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_007052BECAF12574143CE44668EB7FC6" 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_FCA0C07E6DC3FE4770F2E44668E94C94" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" 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_ABD0981D67B206FEE790E44668EBD9D0" 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_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_ABD0981D67B206FEE790E44668EBD9D0" 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_EBE62AC2CAC174C07CDCE44668EB62CC" 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_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_EBE62AC2CAC174C07CDCE44668EB62CC" 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_279ECA11C7A8F0B66683E44668EB313E" 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_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_279ECA11C7A8F0B66683E44668EB313E" 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_B65C9B4D5CA9FB497DCAE44668EB69C7" 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_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_B65C9B4D5CA9FB497DCAE44668EB69C7" 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_6DE89598507EF318531CE44668ECDED0" 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_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_6DE89598507EF318531CE44668ECDED0" 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_E1BE96D0087A900CEBAAE44668ECC647" 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_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_E1BE96D0087A900CEBAAE44668ECC647" 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_3998DA17C6DCA0D3CF74E44668ECE7AA" 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_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_Goodwill_3998DA17C6DCA0D3CF74E44668ECE7AA" 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_245AF3FA0523F807A8E3E44668EC413E" 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_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_245AF3FA0523F807A8E3E44668EC413E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_0022001B7545CE29E5C2E44668EC8EF6" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_0022001B7545CE29E5C2E44668EC8EF6" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" 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_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable_A6D9FD0718B2C77F60E7E44668EC1E6A" 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_A9E1C78B180AD90E0E0CE44668ED0E6B" 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_007052BECAF12574143CE44668EB7FC6" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_A9E1C78B180AD90E0E0CE44668ED0E6B" 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_1A38809FED8ABC6371CBE446693EB17E" 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_BDF49E3742CD2AA0FC31E446693EEEA2" 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_1A38809FED8ABC6371CBE446693EB17E" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BDF49E3742CD2AA0FC31E446693EEEA2" 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_B3FCF06AA257A6E71612E446693E2D8F" 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_BDF49E3742CD2AA0FC31E446693EEEA2" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_B3FCF06AA257A6E71612E446693E2D8F" 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_CE019228C37705964ED0E446693FB74B" 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_B3FCF06AA257A6E71612E446693E2D8F" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CE019228C37705964ED0E446693FB74B" 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_28DD7B331274EF93463AE446693F5380" 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_CE019228C37705964ED0E446693FB74B" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_28DD7B331274EF93463AE446693F5380" 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_F985320A2AF5CEA34474E446693FFC4E" 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_CE019228C37705964ED0E446693FB74B" xlink:to="loc_us-gaap_CustomerRelationshipsMember_F985320A2AF5CEA34474E446693FFC4E" 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_0214B1634D9DCACE0DEFE4466940C8CE" 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_BDF49E3742CD2AA0FC31E446693EEEA2" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_0214B1634D9DCACE0DEFE4466940C8CE" 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_A68D25BBF9F3A188E453E44669403602" 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_0214B1634D9DCACE0DEFE4466940C8CE" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_A68D25BBF9F3A188E453E44669403602" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" 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_A68D25BBF9F3A188E453E44669403602" xlink:to="loc_cgnx_GViVenturesInc.Member_6D15812C5A05F030357BE44669406A84" 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_4742A2C1F30A5E4652F9E44669404077" 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_BDF49E3742CD2AA0FC31E446693EEEA2" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" 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_E43CC539BE8E662A97C6E446694074A3" 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_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_E43CC539BE8E662A97C6E446694074A3" 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_5520813EB7984AA0197AE44669418559" 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_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_5520813EB7984AA0197AE44669418559" 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_5561EDF73534C4C74B6FE4466941F1EC" 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_BusinessAcquisitionLineItems_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5561EDF73534C4C74B6FE4466941F1EC" 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_4122D8B9C0E691306DEFE44669417135" 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_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_4122D8B9C0E691306DEFE44669417135" 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_0F158D34B57F4FEB3ABEE44669419D1C" 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_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_0F158D34B57F4FEB3ABEE44669419D1C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition" xlink:label="loc_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" 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_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_cgnx_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition_228FA89D6C7E31A825A5E4466941764E" 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_ED76C7FB2335D0D0C648E4466942A752" 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_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_ED76C7FB2335D0D0C648E4466942A752" 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_D909BF650D29B5DA95D8E44669420D42" 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_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_D909BF650D29B5DA95D8E44669420D42" 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_1E3D58B0E2FC356CE1B2E4466942D784" 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_4742A2C1F30A5E4652F9E44669404077" xlink:to="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_1E3D58B0E2FC356CE1B2E4466942D784" 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_47EDBAF25C5AB3D7BCC4E4466935E6CE" 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_846951125EAC52A5BB4EE4466935E8C5" 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_47EDBAF25C5AB3D7BCC4E4466935E6CE" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_846951125EAC52A5BB4EE4466935E8C5" 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_4409D03661884CB03A87E446693518A5" 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_846951125EAC52A5BB4EE4466935E8C5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4409D03661884CB03A87E446693518A5" 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_7763A02EB11D578EFBF9E44669367557" 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_4409D03661884CB03A87E446693518A5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_7763A02EB11D578EFBF9E44669367557" 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_9EA24970B8CD80DECE08E44669367535" 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_7763A02EB11D578EFBF9E44669367557" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_9EA24970B8CD80DECE08E44669367535" 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_25AB28210BCE30A541F8E4466936A9D9" 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_7763A02EB11D578EFBF9E44669367557" xlink:to="loc_us-gaap_CustomerRelationshipsMember_25AB28210BCE30A541F8E4466936A9D9" 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_503BDB78C8A7F064A3B6E4466936A6B2" 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_846951125EAC52A5BB4EE4466935E8C5" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_503BDB78C8A7F064A3B6E4466936A6B2" 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_D239C5F43C24A53F97C1E44669366043" 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_503BDB78C8A7F064A3B6E4466936A6B2" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D239C5F43C24A53F97C1E44669366043" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_59202C9C9635FE60D790E4466937FFD2" 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_D239C5F43C24A53F97C1E44669366043" xlink:to="loc_cgnx_GViVenturesInc.Member_59202C9C9635FE60D790E4466937FFD2" 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_7E327B9A4238B9AF8E71E446693766A4" 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_846951125EAC52A5BB4EE4466935E8C5" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_7E327B9A4238B9AF8E71E446693766A4" 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_2DCB152091B033692B21E4466937EB10" 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_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_2DCB152091B033692B21E4466937EB10" 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_8ADF969054C998E95C26E44669385EAB" 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_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_8ADF969054C998E95C26E44669385EAB" 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_F73BCF98559370BC4CA8E4466938ABE5" 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_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_F73BCF98559370BC4CA8E4466938ABE5" 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_F1C2EADB5C056DEEAAAEE4466938908B" 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_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_F1C2EADB5C056DEEAAAEE4466938908B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_75F752047CCEDB26B903E44669386B35" 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_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_75F752047CCEDB26B903E44669386B35" 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_20F856232D4378E139FCE446693813DA" 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_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_20F856232D4378E139FCE446693813DA" 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_CDD225EB85932292D794E44669381510" 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_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_Goodwill_CDD225EB85932292D794E44669381510" 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_E99660E3037E848E4366E4466939A7A5" 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_7E327B9A4238B9AF8E71E446693766A4" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_E99660E3037E848E4366E4466939A7A5" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsManateeWorksIncNarrativeDetails" 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_27284FE7C6838F1EFE06FA5C20A01C43" 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_98D0267B2A0C3FF83785FA5C20A09EB5" 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_27284FE7C6838F1EFE06FA5C20A01C43" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_98D0267B2A0C3FF83785FA5C20A09EB5" 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_EE038FFDE3F55B9B4ED7FA5C20A17534" 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_98D0267B2A0C3FF83785FA5C20A09EB5" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_EE038FFDE3F55B9B4ED7FA5C20A17534" 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_990BEBEF0E884598CBD6FA5C20A1CDCF" 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_EE038FFDE3F55B9B4ED7FA5C20A17534" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_990BEBEF0E884598CBD6FA5C20A1CDCF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_F43A37FC2A48231AD35EFA5C20A1DA21" 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_990BEBEF0E884598CBD6FA5C20A1CDCF" xlink:to="loc_cgnx_ManateeWorksInc.Member_F43A37FC2A48231AD35EFA5C20A1DA21" 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_561904EE249E4E37E718FA5C20A2E82C" 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_98D0267B2A0C3FF83785FA5C20A09EB5" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" 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_EA22C665ACB370902976FA5C20A28B25" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_EA22C665ACB370902976FA5C20A28B25" 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_75DBF16B98DD2AC055D4FA5C20A252B1" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_75DBF16B98DD2AC055D4FA5C20A252B1" 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_24051CEA98480690FBA2FA5C20A2E7CD" 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_BusinessAcquisitionLineItems_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_24051CEA98480690FBA2FA5C20A2E7CD" 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_3A8B119315D6B2BC1D60FA5C20A2F502" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_3A8B119315D6B2BC1D60FA5C20A2F502" 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_496BBB70914E98AAECB2FA5C20A36D20" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_496BBB70914E98AAECB2FA5C20A36D20" 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_4BD97D3D261ECA707683FA5C20A3368E" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_4BD97D3D261ECA707683FA5C20A3368E" 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_B6233202DBC36AC11074FA5C20A33FBD" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_PaymentsForPreviousAcquisition_B6233202DBC36AC11074FA5C20A33FBD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_76BDEF4F6513BE6D576BFA5C20A3FFFF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_CE6F331E6D17C952F82BFA5C20A3A33E" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_CE6F331E6D17C952F82BFA5C20A3A33E" 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_2C977392B7EE1DA055C3FA5C20A42176" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_2C977392B7EE1DA055C3FA5C20A42176" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_BCE30C856A4124B26B58FA5C20A4BE63" 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_561904EE249E4E37E718FA5C20A2E82C" xlink:to="loc_cgnx_Taxdeductiblegoodwill_BCE30C856A4124B26B58FA5C20A4BE63" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsManateeWorksIncPurchasePriceAllocationDetails" 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_6B226979917971D4891AE44668C76A9F" 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_616CE4580F20E9FB4BC3E44668C7F5AE" 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_6B226979917971D4891AE44668C76A9F" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_616CE4580F20E9FB4BC3E44668C7F5AE" 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_51D4204190CD6BECBD3BE44668C785C6" 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_616CE4580F20E9FB4BC3E44668C7F5AE" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_51D4204190CD6BECBD3BE44668C785C6" 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_B382C67F2C2C5D8F9624E44668C7E132" 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_51D4204190CD6BECBD3BE44668C785C6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B382C67F2C2C5D8F9624E44668C7E132" 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_E1A945244E76C30A70F3E44668C87F38" 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_B382C67F2C2C5D8F9624E44668C7E132" xlink:to="loc_us-gaap_CustomerRelationshipsMember_E1A945244E76C30A70F3E44668C87F38" 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_1998D9A59F4A0CEB7E92E44668C8220D" 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_B382C67F2C2C5D8F9624E44668C7E132" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_1998D9A59F4A0CEB7E92E44668C8220D" 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_D255B49F00223252F06FE44668C84E22" 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_616CE4580F20E9FB4BC3E44668C7F5AE" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_D255B49F00223252F06FE44668C84E22" 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_D09603828AF766252289E44668C8586B" 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_D255B49F00223252F06FE44668C84E22" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D09603828AF766252289E44668C8586B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" 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_D09603828AF766252289E44668C8586B" xlink:to="loc_cgnx_ManateeWorksInc.Member_FBF605E84EE3B6C7BF5AE44668C91157" 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_F460D785C9D113CAF647E44668C9C006" 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_616CE4580F20E9FB4BC3E44668C7F5AE" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_F460D785C9D113CAF647E44668C9C006" 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_AFA3A0E9B7DCD73FD92BE44668C9FE6E" 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_F460D785C9D113CAF647E44668C9C006" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_AFA3A0E9B7DCD73FD92BE44668C9FE6E" 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_0243985D08329DF170D6E44668C982A6" 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_F460D785C9D113CAF647E44668C9C006" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_0243985D08329DF170D6E44668C982A6" 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_5428547A5F7654DB8005E44668CA2A20" 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_F460D785C9D113CAF647E44668C9C006" xlink:to="loc_us-gaap_Goodwill_5428547A5F7654DB8005E44668CA2A20" 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_0227BAD51F63006B4D26E44668CAAD38" 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_BusinessAcquisitionLineItems_F460D785C9D113CAF647E44668C9C006" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_0227BAD51F63006B4D26E44668CAAD38" 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_15BC90E09E1C9CE03AC3E446692A2B65" 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_BB9EBD18B3BB68945E48E446692B8667" 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_15BC90E09E1C9CE03AC3E446692A2B65" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BB9EBD18B3BB68945E48E446692B8667" 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_D74539DD3D705172B47AE446692B9E38" 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_BB9EBD18B3BB68945E48E446692B8667" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D74539DD3D705172B47AE446692B9E38" 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_6B9C7328C480560CE791E446692BF6E1" 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_D74539DD3D705172B47AE446692B9E38" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6B9C7328C480560CE791E446692BF6E1" 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_FFD6FB612729C687DE48E446692B53EB" 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_6B9C7328C480560CE791E446692BF6E1" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_FFD6FB612729C687DE48E446692B53EB" 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_B57BC29E9C6735BB44CCE446692C22C4" 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_6B9C7328C480560CE791E446692BF6E1" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_B57BC29E9C6735BB44CCE446692C22C4" 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_ABAF124FA2BD47804B84E446692CF9B5" 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_BB9EBD18B3BB68945E48E446692B8667" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_ABAF124FA2BD47804B84E446692CF9B5" 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_76E89A8C71939B82A369E446692CCA1F" 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_ABAF124FA2BD47804B84E446692CF9B5" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_76E89A8C71939B82A369E446692CCA1F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_4CE0FBC22111212A27B0E446692CA6C6" 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_76E89A8C71939B82A369E446692CCA1F" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_4CE0FBC22111212A27B0E446692CA6C6" 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_3B92EFC055EC90A270B3E446692C3D3D" 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_BB9EBD18B3BB68945E48E446692B8667" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_3B92EFC055EC90A270B3E446692C3D3D" 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_6478A9F6CC00CA19B9A1E446692DCC72" 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_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_6478A9F6CC00CA19B9A1E446692DCC72" 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_BF48016D0CF785297E59E446692DDE5F" 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_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_BF48016D0CF785297E59E446692DDE5F" 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_30A36EA382EA482C6514E446692D9C8C" 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_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_30A36EA382EA482C6514E446692D9C8C" 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_F6D875B3D5BF4B6A4CDEE446692DE4E3" 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_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_F6D875B3D5BF4B6A4CDEE446692DE4E3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_6D3B9BD331A11FB272C6E446692D8A08" 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_3B92EFC055EC90A270B3E446692C3D3D" xlink:to="loc_cgnx_Taxdeductiblegoodwill_6D3B9BD331A11FB272C6E446692D8A08" 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_9D992C78BD50E586C885FA5C23B13C22" 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_EBA41652915F5D2BDABEFA5C23B1C958" 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_9D992C78BD50E586C885FA5C23B13C22" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_EBA41652915F5D2BDABEFA5C23B1C958" 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_8782B204ECB487939372FA5C23B12D2E" 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_EBA41652915F5D2BDABEFA5C23B1C958" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8782B204ECB487939372FA5C23B12D2E" 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_A9E4E7BE06013744083FFA5C23B294CD" 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_8782B204ECB487939372FA5C23B12D2E" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A9E4E7BE06013744083FFA5C23B294CD" 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_131EFA86EDA3B2677C64FA5C23B20320" 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_A9E4E7BE06013744083FFA5C23B294CD" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_131EFA86EDA3B2677C64FA5C23B20320" 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_BC8D83E958AFA13AD37BFA5C23B234D7" 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_A9E4E7BE06013744083FFA5C23B294CD" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_BC8D83E958AFA13AD37BFA5C23B234D7" 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_B851ED1F0BD3F0326CABFA5C23B23C87" 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_EBA41652915F5D2BDABEFA5C23B1C958" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_B851ED1F0BD3F0326CABFA5C23B23C87" 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_EEBAC4CD48F16B253D9DFA5C23B33F77" 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_B851ED1F0BD3F0326CABFA5C23B23C87" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_EEBAC4CD48F16B253D9DFA5C23B33F77" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" 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_EEBAC4CD48F16B253D9DFA5C23B33F77" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_CA31C0E2C45E3ADF5777FA5C23B32EF6" 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_372DEE71C2878B0A479EFA5C23B377E1" 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_EBA41652915F5D2BDABEFA5C23B1C958" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_372DEE71C2878B0A479EFA5C23B377E1" 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_9444EE0D484083F75530FA5C23B3176D" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_9444EE0D484083F75530FA5C23B3176D" 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_0F6C3CF33B7472A4E032FA5C23B45931" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_0F6C3CF33B7472A4E032FA5C23B45931" 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_1EBB5C476AAE19330163FA5C23B4985F" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_1EBB5C476AAE19330163FA5C23B4985F" 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_6E4D16DBC46CA057350CFA5C23B4E433" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_6E4D16DBC46CA057350CFA5C23B4E433" 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_42888A27CCEB0D0B44ABFA5C23B44139" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_42888A27CCEB0D0B44ABFA5C23B44139" 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_F0E41CF467FB44E9006EFA5C23B449CB" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_F0E41CF467FB44E9006EFA5C23B449CB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_CFEE909B5D77CAA76180FA5C23B498C5" 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_552C2D9537B7B0CA85B7FA5C23BA0325" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_552C2D9537B7B0CA85B7FA5C23BA0325" 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_00BE391D12C835CA0B7FFA5C23BA292C" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_00BE391D12C835CA0B7FFA5C23BA292C" 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_61A4D6B02EB2AF8F99F5FA5C23BAAA0B" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_Goodwill_61A4D6B02EB2AF8F99F5FA5C23BAAA0B" 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_1C9DC2A3A6C383C90B02FA5C23BA8844" 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_372DEE71C2878B0A479EFA5C23B377E1" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1C9DC2A3A6C383C90B02FA5C23BA8844" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsWebscanIncNarrativeDetails" 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_D0060C29DD577E53EF3AFA5C22FF513A" 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_2F5A4C06069F85D36E17FA5C22FF9D18" 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_D0060C29DD577E53EF3AFA5C22FF513A" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2F5A4C06069F85D36E17FA5C22FF9D18" 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_2059E876E9635C4CE6DEFA5C22FF10EF" 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_2F5A4C06069F85D36E17FA5C22FF9D18" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2059E876E9635C4CE6DEFA5C22FF10EF" 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_076B812E45F7231753C9FA5C230592C3" 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_2059E876E9635C4CE6DEFA5C22FF10EF" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_076B812E45F7231753C9FA5C230592C3" 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_2092FB9C6D8DDE123B9BFA5C2305D965" 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_076B812E45F7231753C9FA5C230592C3" xlink:to="loc_us-gaap_CustomerRelationshipsMember_2092FB9C6D8DDE123B9BFA5C2305D965" 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_425C7C9056C2B5E0E015FA5C2305BE11" 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_076B812E45F7231753C9FA5C230592C3" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_425C7C9056C2B5E0E015FA5C2305BE11" 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_AEA60FE07F221276ADE5FA5C23056084" 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_2F5A4C06069F85D36E17FA5C22FF9D18" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_AEA60FE07F221276ADE5FA5C23056084" 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_89E618D6AE140F11B870FA5C23052DD4" 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_AEA60FE07F221276ADE5FA5C23056084" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_89E618D6AE140F11B870FA5C23052DD4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_WebscanInc.Member" xlink:label="loc_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" 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_89E618D6AE140F11B870FA5C23052DD4" xlink:to="loc_cgnx_WebscanInc.Member_7FE89CB3E965911E8BADFA5C2306788F" 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_C5B9ECE8A3DD963AB607FA5C23062022" 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_2F5A4C06069F85D36E17FA5C22FF9D18" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_C5B9ECE8A3DD963AB607FA5C23062022" 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_9E0A6B971D88487BE274FA5C2306DCBC" 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_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_9E0A6B971D88487BE274FA5C2306DCBC" 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_B6540E8CE31C2E74C099FA5C23070CF0" 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_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_B6540E8CE31C2E74C099FA5C23070CF0" 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_E0B288C9535ED8AD22D5FA5C2307085D" 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_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_E0B288C9535ED8AD22D5FA5C2307085D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" 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_C5B9ECE8A3DD963AB607FA5C23062022" xlink:to="loc_cgnx_Taxdeductiblegoodwill_A87487E6A488575F8C79FA5C2307FE2B" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsWebscanIncPurchasePriceAllocationDetails" 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_9D5F0BC0995AAFC7F593E85A5C417D49" 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_BC70804D7FD9EAB762D7E85A5C41C47C" 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_9D5F0BC0995AAFC7F593E85A5C417D49" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_BC70804D7FD9EAB762D7E85A5C41C47C" 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_2D341E030F5EE96A2A8AE85A5C41A3D6" 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_BC70804D7FD9EAB762D7E85A5C41C47C" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_2D341E030F5EE96A2A8AE85A5C41A3D6" 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_AF23DD8399C1CC37C9F5E85A5C433ABD" 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_2D341E030F5EE96A2A8AE85A5C41A3D6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_AF23DD8399C1CC37C9F5E85A5C433ABD" 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_91E5C652A113429461C6E85A5C43F18C" 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_AF23DD8399C1CC37C9F5E85A5C433ABD" xlink:to="loc_us-gaap_CustomerRelationshipsMember_91E5C652A113429461C6E85A5C43F18C" 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_4A7F6CD81EB1DCE50878E85A5C4322A2" 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_AF23DD8399C1CC37C9F5E85A5C433ABD" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_4A7F6CD81EB1DCE50878E85A5C4322A2" 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_65F3058B4FCCC549733EE85A5C43A25E" 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_BC70804D7FD9EAB762D7E85A5C41C47C" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_65F3058B4FCCC549733EE85A5C43A25E" 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_0F3897426951499E1F3DE85A5C432F72" 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_65F3058B4FCCC549733EE85A5C43A25E" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_0F3897426951499E1F3DE85A5C432F72" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_WebscanInc.Member" xlink:label="loc_cgnx_WebscanInc.Member_E058251BF8A167215065E85A5C465615" 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_0F3897426951499E1F3DE85A5C432F72" xlink:to="loc_cgnx_WebscanInc.Member_E058251BF8A167215065E85A5C465615" 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_21E13F1E2AC360A40C15E85A5C46D869" 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_BC70804D7FD9EAB762D7E85A5C41C47C" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" 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_4849529FE0F8A9F54DB4E85A5C463C27" 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_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_4849529FE0F8A9F54DB4E85A5C463C27" 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_F91C309D931F1D8985E2E85A5C464600" 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_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_F91C309D931F1D8985E2E85A5C464600" 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_CCD44D8F3A2D41CEF364E85A5C46878A" 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_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_CCD44D8F3A2D41CEF364E85A5C46878A" 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_98B245034C7CEFA527C8E85A5C462215" 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_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_98B245034C7CEFA527C8E85A5C462215" 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_FBE61D773CAA9047C0E3E85A5C46F019" 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_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_Goodwill_FBE61D773CAA9047C0E3E85A5C46F019" 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_3C389059D9278AAC8E09E85A5C46C37A" 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_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_3C389059D9278AAC8E09E85A5C46C37A" 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_6084DAF0458BE6D38659E85A5C46D588" 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_BusinessAcquisitionLineItems_21E13F1E2AC360A40C15E85A5C46D869" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_6084DAF0458BE6D38659E85A5C46D588" 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_41A073AFEBC9E5FAA424FA5C210AD65D" 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_19C094B7002E34BE81B6FA5C210A4FAF" 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_41A073AFEBC9E5FAA424FA5C210AD65D" xlink:to="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_19C094B7002E34BE81B6FA5C210A4FAF" 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_71AE8AF7C98EC39F14B7E48463E649BE" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_DueFromForeignBanks" xlink:label="loc_cgnx_DueFromForeignBanks_F8805806260449D3F7BFE48463E8F2F9" 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_71AE8AF7C98EC39F14B7E48463E649BE" xlink:to="loc_cgnx_DueFromForeignBanks_F8805806260449D3F7BFE48463E8F2F9" 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_4894F8559E641DC831E3E48463E89DA9" 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_71AE8AF7C98EC39F14B7E48463E649BE" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_4894F8559E641DC831E3E48463E89DA9" 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_6EFD7BA1E57895005C69E48463E8FE51" 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_71AE8AF7C98EC39F14B7E48463E649BE" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_6EFD7BA1E57895005C69E48463E8FE51" 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_AFA6E62493BE66A475E5E483AB79D354" 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_BF07715E09333A478944E483AB7A156F" 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_AFA6E62493BE66A475E5E483AB79D354" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_BF07715E09333A478944E483AB7A156F" 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_29E1016D1A5870F2A308E483AB7CCC06" 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_BF07715E09333A478944E483AB7A156F" xlink:to="loc_us-gaap_FinancialInstrumentAxis_29E1016D1A5870F2A308E483AB7CCC06" 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_8AC15BC6BC37A5EC8879E483AB7CBB5E" 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_29E1016D1A5870F2A308E483AB7CCC06" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8AC15BC6BC37A5EC8879E483AB7CBB5E" 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_9C4388923D9A98BCAAD9E483AB7D35F8" 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_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_9C4388923D9A98BCAAD9E483AB7D35F8" 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_B842D4F53A65B0C7A176E483AB7CB52B" 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_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_B842D4F53A65B0C7A176E483AB7CB52B" 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_3B50743C0104D32A66BBE483AB7D8E13" 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_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_3B50743C0104D32A66BBE483AB7D8E13" 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_E1B7F4A5E1555ED83E8BE483AB7D85B1" 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_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_E1B7F4A5E1555ED83E8BE483AB7D85B1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_CE5809326AE3F2827315E483AB7D0EAB" 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_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_cgnx_AgencyBondsMember_CE5809326AE3F2827315E483AB7D0EAB" 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_7F14973EF4048C8272F8E483AB7DF73C" 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_8AC15BC6BC37A5EC8879E483AB7CBB5E" xlink:to="loc_us-gaap_MunicipalBondsMember_7F14973EF4048C8272F8E483AB7DF73C" 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_73B5712219279991DA39E483AB7E7632" 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_BF07715E09333A478944E483AB7A156F" xlink:to="loc_us-gaap_InvestmentTypeAxis_73B5712219279991DA39E483AB7E7632" 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_6C10CE0E2DE1B4E3C97DE483AB7E472C" 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_73B5712219279991DA39E483AB7E7632" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_6C10CE0E2DE1B4E3C97DE483AB7E472C" 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_D8BB69110EB9F7D83A5EE483AB7EEEE9" 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_6C10CE0E2DE1B4E3C97DE483AB7E472C" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_D8BB69110EB9F7D83A5EE483AB7EEEE9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LongTermInvestmentsMember" xlink:label="loc_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" 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_6C10CE0E2DE1B4E3C97DE483AB7E472C" xlink:to="loc_cgnx_LongTermInvestmentsMember_E3DA9F2A25448CF2A1C4E483AB7E5DB6" 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_0258D20E789950C9A20FE483AB7E0850" 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_BF07715E09333A478944E483AB7A156F" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_0258D20E789950C9A20FE483AB7E0850" 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_A906820175C1AD0C8C54E483AB7F3C85" 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_0258D20E789950C9A20FE483AB7E0850" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_A906820175C1AD0C8C54E483AB7F3C85" 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_524D63E741364050B890E483AB7FFF1B" 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_0258D20E789950C9A20FE483AB7E0850" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_524D63E741364050B890E483AB7FFF1B" 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_D21A2168EC8B1942B283E483AB7F1AC0" 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_0258D20E789950C9A20FE483AB7E0850" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_D21A2168EC8B1942B283E483AB7F1AC0" 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_7877AAF815A689FA615CE483AB7F151E" 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_0258D20E789950C9A20FE483AB7E0850" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_7877AAF815A689FA615CE483AB7F151E" 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_A3DE096FB48B7B85A5EFE484A1CF5613" 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_467564471AE44415EA4AE484A1CFF308" 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_A3DE096FB48B7B85A5EFE484A1CF5613" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_467564471AE44415EA4AE484A1CFF308" 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_48568FFECF1DF2DF8863E484A1D01F9C" 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_467564471AE44415EA4AE484A1CFF308" xlink:to="loc_us-gaap_FinancialInstrumentAxis_48568FFECF1DF2DF8863E484A1D01F9C" 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_BD5C4B4D506337DB8E6DE484A1D0DF6F" 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_48568FFECF1DF2DF8863E484A1D01F9C" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_BD5C4B4D506337DB8E6DE484A1D0DF6F" 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_4444A3C4C603ABF1472FE484A1D04C70" 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_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_4444A3C4C603ABF1472FE484A1D04C70" 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_BB3E208ADD6F8273D65DE484A1D108D9" 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_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_BB3E208ADD6F8273D65DE484A1D108D9" 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_B7C22FE796AFA5D37C27E484A1D158DE" 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_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_B7C22FE796AFA5D37C27E484A1D158DE" 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_8B71320BFACF248D45B4E484A1D1491E" 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_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_8B71320BFACF248D45B4E484A1D1491E" 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_64CD69BA851B27E0D5E5E484A1D25FEF" 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_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_us-gaap_MunicipalBondsMember_64CD69BA851B27E0D5E5E484A1D25FEF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_031FBF2414AC071FB58AE484A1D28FB1" 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_BD5C4B4D506337DB8E6DE484A1D0DF6F" xlink:to="loc_cgnx_AgencyBondsMember_031FBF2414AC071FB58AE484A1D28FB1" 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_D9C24B9459751CB8A18FE484A1D2B01B" 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_467564471AE44415EA4AE484A1CFF308" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" 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_6A8541AB04360C4DD7B8E484A1D24FAF" 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_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_Cash_6A8541AB04360C4DD7B8E484A1D24FAF" 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_9317022FA078A93DCF32E484A1D38381" 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_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_9317022FA078A93DCF32E484A1D38381" 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_59D3F3CE1A3DF58A38E8E484A1D3E08D" 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_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_59D3F3CE1A3DF58A38E8E484A1D3E08D" 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_7F309EF6037425F7715BE484A1D3D5C7" 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_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_7F309EF6037425F7715BE484A1D3D5C7" 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_A75ABE187795F6B8C073E484A1D4FB81" 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_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_A75ABE187795F6B8C073E484A1D4FB81" 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_68831B3DEC31FFECDA38E484A1D4F116" 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_ScheduleOfAvailableForSaleSecuritiesLineItems_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_us-gaap_LongTermInvestments_68831B3DEC31FFECDA38E484A1D4F116" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" 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_D9C24B9459751CB8A18FE484A1D2B01B" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8536C860119BC26F9D68E484A1D424CB" 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_E15790DD5B4AB376A168E4466AEC7034" 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_68D89A443C49720E3211E4466AED6122" 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_E15790DD5B4AB376A168E4466AEC7034" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_68D89A443C49720E3211E4466AED6122" 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_760529BE7FF8EFD06E9BE4466AED8837" 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_68D89A443C49720E3211E4466AED6122" xlink:to="loc_us-gaap_FinancialInstrumentAxis_760529BE7FF8EFD06E9BE4466AED8837" 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_3DEF1788638806809EB9E4466AEDF594" 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_760529BE7FF8EFD06E9BE4466AED8837" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_3DEF1788638806809EB9E4466AEDF594" 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_F87E93A813B58D3B2C41E4466AEE27FB" 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_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_F87E93A813B58D3B2C41E4466AEE27FB" 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_4E7C86F1867787A29182E4466AED27AA" 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_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_4E7C86F1867787A29182E4466AED27AA" 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_58797DA2B48CA05B2D26E4466AEE1820" 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_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_58797DA2B48CA05B2D26E4466AEE1820" 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_D1EA5236A5B31C0B5A48E4466AEED9D8" 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_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_D1EA5236A5B31C0B5A48E4466AEED9D8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_8F9D6E0E47B84544F6C1E4466AEE8B13" 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_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_cgnx_AgencyBondsMember_8F9D6E0E47B84544F6C1E4466AEE8B13" 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_D5A855C527511CC10D2BE4466AEEC618" 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_3DEF1788638806809EB9E4466AEDF594" xlink:to="loc_us-gaap_MunicipalBondsMember_D5A855C527511CC10D2BE4466AEEC618" 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_69E49590F34DF4DF8863E4466AEF6BB4" 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_68D89A443C49720E3211E4466AED6122" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" 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_E37796FC7AA2AD4B8DAEE4466AEFC29A" 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_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_E37796FC7AA2AD4B8DAEE4466AEFC29A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" 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_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_0EC98C4FCBB26BC26710E4466AEF0827" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" 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_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_A90A88AC40AB496C3981E4466AEFFD9D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" 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_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_4488E8572E0FD556F64BE4466AEFB5B1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" 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_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_8B4C54A45D2608B587CBE4466AEF4E94" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" 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_ScheduleOfAvailableForSaleSecuritiesLineItems_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_D06295356219A5F3E5C9E4466AF09A28" 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_6918716CB27DCE78B15EE4466AF05F4E" 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_69E49590F34DF4DF8863E4466AEF6BB4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_6918716CB27DCE78B15EE4466AF05F4E" 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_7059E1A1FD9F8668087BE4466AF775CA" 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_4A0237F1994EF5EE9E00E4466AF8109B" 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_7059E1A1FD9F8668087BE4466AF775CA" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" 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_DCBAA44E3BA6AEA8E710E4466AF81DF1" 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_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" xlink:to="loc_us-gaap_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" 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_08CC3DCDB0A09FAAD5B1E4466AF8CD84" 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_InvestmentTypeAxis_DCBAA44E3BA6AEA8E710E4466AF81DF1" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84" 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_D2E6EADB845958520B57E4466AF88479" 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_InvestmentTypeCategorizationMember_08CC3DCDB0A09FAAD5B1E4466AF8CD84" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_D2E6EADB845958520B57E4466AF88479" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_LegalEntityAxis" xlink:label="loc_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" 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_4A0237F1994EF5EE9E00E4466AF8109B" xlink:to="loc_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityDomain" xlink:label="loc_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6" 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_dei_LegalEntityAxis_517E214F52735D43B4F5E4466AF9E135" xlink:to="loc_dei_EntityDomain_F6F0CE2A34D81F9FA93FE4466AF9D2E6" 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_4CEB5B427D310AEFEB56E4466AF979B4" 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_4A0237F1994EF5EE9E00E4466AF8109B" xlink:to="loc_us-gaap_FinancialInstrumentAxis_4CEB5B427D310AEFEB56E4466AF979B4" 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_97FC2607B0553F0F3575E4466AF9FD4C" 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_4CEB5B427D310AEFEB56E4466AF979B4" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_97FC2607B0553F0F3575E4466AF9FD4C" 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_CD23DF5E31B4C10AB2BDE4466AFA26A6" 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_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_CD23DF5E31B4C10AB2BDE4466AFA26A6" 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_43877EFAA5E9CE93BC5EE4466AFAC7D1" 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_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_43877EFAA5E9CE93BC5EE4466AFAC7D1" 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_967318B6D901EC5CF505E4466AFA830A" 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_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_967318B6D901EC5CF505E4466AFA830A" 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_78B5D623801BADBA4557E4466AFA4576" 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_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_78B5D623801BADBA4557E4466AFA4576" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" 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_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_cgnx_AgencyBondsMember_1AE1677534DFF8105410E4466AFB5480" 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_B5B9E47498EB520F4AE6E4466AFAD675" 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_97FC2607B0553F0F3575E4466AF9FD4C" xlink:to="loc_us-gaap_MunicipalBondsMember_B5B9E47498EB520F4AE6E4466AFAD675" 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_76184FF48F662D0CEC5FE4466AFBCB45" 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_ScheduleOfAvailableForSaleSecuritiesTable_4A0237F1994EF5EE9E00E4466AF8109B" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_76184FF48F662D0CEC5FE4466AFBCB45" 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_0848EFC02F5167B9CA87E4466AFBEBDE" 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_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_0848EFC02F5167B9CA87E4466AFBEBDE" 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_0C17478501ABAFA03A86E4466AFB1CD7" 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_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_0C17478501ABAFA03A86E4466AFB1CD7" 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_19213711F2EE0623CC33E4466AFB973B" 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_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_19213711F2EE0623CC33E4466AFB973B" 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_4BAB27B098E200DD6F1EE4466AFB85BF" 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_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4BAB27B098E200DD6F1EE4466AFB85BF" 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_D1D1883FFF4B5CBA3139E4466AFC321A" 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_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_D1D1883FFF4B5CBA3139E4466AFC321A" 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_8DA5D3E3AFFCE794F347E4466AFC6B26" 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_76184FF48F662D0CEC5FE4466AFBCB45" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_8DA5D3E3AFFCE794F347E4466AFC6B26" 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_67FAB612424670D1E16BFA5C218AD4A0" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_EB5BCF722C8C8E3229D7FA5C218BFA47" 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_67FAB612424670D1E16BFA5C218AD4A0" xlink:to="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_EB5BCF722C8C8E3229D7FA5C218BFA47" 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_5A3CAF8684EC00584A02FA5C218BDA3C" 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_67FAB612424670D1E16BFA5C218AD4A0" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_5A3CAF8684EC00584A02FA5C218BDA3C" 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_9A2A232E3826964D7162FA5C218B42C4" 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_67FAB612424670D1E16BFA5C218AD4A0" xlink:to="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_9A2A232E3826964D7162FA5C218B42C4" 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_4274E256D739E067BDE7FA5C218BE7E1" 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_67FAB612424670D1E16BFA5C218AD4A0" xlink:to="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_4274E256D739E067BDE7FA5C218BE7E1" 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_02ADF3E9429AB9BB1D1DFA5C23EF6C04" 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_B2C8A8948FA6702F1B8AFA5C23EFBF8A" 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_02ADF3E9429AB9BB1D1DFA5C23EF6C04" xlink:to="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_B2C8A8948FA6702F1B8AFA5C23EFBF8A" 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_1D584560EA113FD95C1CFA5C20803DE0" 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_F82C2B2286660E9D543CFA5C20801605" 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_1D584560EA113FD95C1CFA5C20803DE0" xlink:to="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_F82C2B2286660E9D543CFA5C20801605" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="loc_us-gaap_OperatingLeasesRentExpenseNet_4134A66FF96C489F2B73FA5C20806A39" 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_CommitmentsAndContingenciesDisclosureAbstract_1D584560EA113FD95C1CFA5C20803DE0" xlink:to="loc_us-gaap_OperatingLeasesRentExpenseNet_4134A66FF96C489F2B73FA5C20806A39" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesIncomeStatementLeaseRevenue" xlink:label="loc_us-gaap_OperatingLeasesIncomeStatementLeaseRevenue_19E9B1EF9ADF59C8CBF6FA5C20808C00" 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_CommitmentsAndContingenciesDisclosureAbstract_1D584560EA113FD95C1CFA5C20803DE0" xlink:to="loc_us-gaap_OperatingLeasesIncomeStatementLeaseRevenue_19E9B1EF9ADF59C8CBF6FA5C20808C00" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail" 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_17A256109257FB4A8DE4E3837F052AB2" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" 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_17A256109257FB4A8DE4E3837F052AB2" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_F63BACDE3D7CF6958006E3837F069161" 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_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_F63BACDE3D7CF6958006E3837F069161" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_606E7100017FDEFC0D56E3837F06FEEC" 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_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_606E7100017FDEFC0D56E3837F06FEEC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_A90F42B5D74CAE8D6B5FE3837F062C09" 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_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears_A90F42B5D74CAE8D6B5FE3837F062C09" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_E7066BAF147B9F27ABAAE3837F07D9FA" 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_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears_E7066BAF147B9F27ABAAE3837F07D9FA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_0A46B7BB771545D17CE1E3837F07CD47" 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_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears_0A46B7BB771545D17CE1E3837F07CD47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_6B3ED8A7FC32AF343B4CE3837F07D236" 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_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter_6B3ED8A7FC32AF343B4CE3837F07D236" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_1AD7599612F1A091451EE3837F07BB8F" 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_OperatingLeasesFutureMinimumPaymentsDueAbstract_959BB4B4FE67240AB5D2E3837F066BFD" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsDue_1AD7599612F1A091451EE3837F07BB8F" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail" 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_E7E15B875EE2EBCC2C8EE3837EF94A21" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" 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_E7E15B875EE2EBCC2C8EE3837EF94A21" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_4F5D58E700C18C918AB4E3837EFA2A2A" 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_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears_4F5D58E700C18C918AB4E3837EFA2A2A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_ED080FBF8140BE15EFF4E3837EFA40B6" 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_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears_ED080FBF8140BE15EFF4E3837EFA40B6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_5ADC50EFDEFE3B2C35E2E3837EFA2E34" 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_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears_5ADC50EFDEFE3B2C35E2E3837EFA2E34" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_7C134579941B2EF4E8CAE3837EFB3A52" 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_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears_7C134579941B2EF4E8CAE3837EFB3A52" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable" xlink:label="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_1CB1BB7E883E3EA36C7CE3837EFBEB5E" 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_OperatingLeasesFutureMinimumPaymentsReceivableAbstract_F10C591D3F730F884EB1E3837EFAD72A" xlink:to="loc_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable_1CB1BB7E883E3EA36C7CE3837EFBEB5E" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesTables" 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_CC72DB48246481DB5E9EFA5C21FF2CF1" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_50AB55C4CE4B49AC0793FA5C22049A65" 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_CC72DB48246481DB5E9EFA5C21FF2CF1" xlink:to="loc_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_50AB55C4CE4B49AC0793FA5C22049A65" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock" xlink:label="loc_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753" 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_CommitmentsAndContingenciesDisclosureAbstract_CC72DB48246481DB5E9EFA5C21FF2CF1" xlink:to="loc_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock_BE7E68577B13B476181FFA5C22046753" 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_F99A1B8DA24258892ECEE487780FCBB1" 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_D73977654546E4218AC3E487780FA8C3" 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_F99A1B8DA24258892ECEE487780FCBB1" xlink:to="loc_us-gaap_AssetsAbstract_D73977654546E4218AC3E487780FA8C3" 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_C686003556AA45038A9DE4877810BAE9" 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_D73977654546E4218AC3E487780FA8C3" xlink:to="loc_us-gaap_AssetsCurrentAbstract_C686003556AA45038A9DE4877810BAE9" 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_8579EA7BF29DB4141692E4877810BE45" 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_C686003556AA45038A9DE4877810BAE9" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_8579EA7BF29DB4141692E4877810BE45" 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_453A03CC3F03ECEFFEEDE487781030CC" 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_C686003556AA45038A9DE4877810BAE9" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_453A03CC3F03ECEFFEEDE487781030CC" 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_EF73D2A67F16EDC88F0EE48778105128" 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_C686003556AA45038A9DE4877810BAE9" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_EF73D2A67F16EDC88F0EE48778105128" 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_C015029BCD1BB4AC503CE4877811E1A9" 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_C686003556AA45038A9DE4877810BAE9" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_C015029BCD1BB4AC503CE4877811E1A9" 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_9842F8188F69703D976FE48778113920" 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_C686003556AA45038A9DE4877810BAE9" xlink:to="loc_us-gaap_InventoryNet_9842F8188F69703D976FE48778113920" 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_8877DB83045D3D7B9407E48778114D25" 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_C686003556AA45038A9DE4877810BAE9" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_8877DB83045D3D7B9407E48778114D25" 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_E855515F2F6609927D12E48778117588" 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_C686003556AA45038A9DE4877810BAE9" xlink:to="loc_us-gaap_AssetsCurrent_E855515F2F6609927D12E48778117588" 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_1E5FD56DBE58BC1DC501E48778111B3F" 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_D73977654546E4218AC3E487780FA8C3" xlink:to="loc_us-gaap_LongTermInvestments_1E5FD56DBE58BC1DC501E48778111B3F" 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_BEA5B266C7CCA7A4E8F2E4877812FF21" 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_D73977654546E4218AC3E487780FA8C3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_BEA5B266C7CCA7A4E8F2E4877812FF21" 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_31947A4A50BD700F3D39E48778125332" 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_AssetsAbstract_D73977654546E4218AC3E487780FA8C3" xlink:to="loc_us-gaap_Goodwill_31947A4A50BD700F3D39E48778125332" 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_B8F1A740E96719A9213DE4877812B922" 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_D73977654546E4218AC3E487780FA8C3" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_B8F1A740E96719A9213DE4877812B922" 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_B9174594AB73224C64DBE4877812DAF9" 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_AssetsAbstract_D73977654546E4218AC3E487780FA8C3" xlink:to="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_B9174594AB73224C64DBE4877812DAF9" 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_978C3CA244E5EFA73AA3E4877812E30C" 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_D73977654546E4218AC3E487780FA8C3" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_978C3CA244E5EFA73AA3E4877812E30C" 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_3681CB4E35D156C3D8F1E4877812C574" 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_AssetsAbstract_D73977654546E4218AC3E487780FA8C3" xlink:to="loc_us-gaap_Assets_3681CB4E35D156C3D8F1E4877812C574" 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_CFF8EE2DCB57C67AFB10E48778136CB2" 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_F99A1B8DA24258892ECEE487780FCBB1" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" 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_29625E5E3F078C308339E48778133F4F" 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_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="loc_us-gaap_LiabilitiesCurrentAbstract_29625E5E3F078C308339E48778133F4F" 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_0E7A828756E7B4A0D0BAE48778133C38" 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_29625E5E3F078C308339E48778133F4F" xlink:to="loc_us-gaap_AccountsPayableCurrent_0E7A828756E7B4A0D0BAE48778133C38" 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_0E441C678CF444D91823E48778131C75" 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_29625E5E3F078C308339E48778133F4F" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_0E441C678CF444D91823E48778131C75" 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_575EC39A471A2ED3F514E48778140C1D" 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_29625E5E3F078C308339E48778133F4F" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_575EC39A471A2ED3F514E48778140C1D" 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_10EFBB1E76304CB9B513E4877814EA6D" 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_29625E5E3F078C308339E48778133F4F" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_10EFBB1E76304CB9B513E4877814EA6D" 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_3E87018F165EDE611281E4877814EDA8" 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_LiabilitiesCurrentAbstract_29625E5E3F078C308339E48778133F4F" xlink:to="loc_us-gaap_LiabilitiesCurrent_3E87018F165EDE611281E4877814EDA8" 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_A6911D76C7A8F92A5194E4877814E5B0" 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_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_A6911D76C7A8F92A5194E4877814E5B0" 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_3CDEEFA3E489A7475414E4877814E1C2" 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_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3CDEEFA3E489A7475414E4877814E1C2" 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_0266DCA1BA681759DB0FE48778159BDD" 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_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="loc_us-gaap_AccruedIncomeTaxesNoncurrent_0266DCA1BA681759DB0FE48778159BDD" 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_3A3BB4904E16A77DD6E5E48778159B1F" 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_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_3A3BB4904E16A77DD6E5E48778159B1F" 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_4BD0DDC690224ABD44FAE4877815F964" 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_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="loc_us-gaap_Liabilities_4BD0DDC690224ABD44FAE4877815F964" 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_A798137E670703620EF1E48778153550" 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_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="loc_us-gaap_CommitmentsAndContingencies_A798137E670703620EF1E48778153550" 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_C1A66125BEC678CF7405E4877815CA73" 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_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="loc_us-gaap_StockholdersEquityAbstract_C1A66125BEC678CF7405E4877815CA73" 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_9E51A770B9564F8FEB93E4877815A33A" 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_StockholdersEquityAbstract_C1A66125BEC678CF7405E4877815CA73" xlink:to="loc_us-gaap_CommonStockValueOutstanding_9E51A770B9564F8FEB93E4877815A33A" 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_3ED520024EF577733D94E48778169290" 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_C1A66125BEC678CF7405E4877815CA73" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_3ED520024EF577733D94E48778169290" 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_3EB5306A706FC85AC510E4877816D009" 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_C1A66125BEC678CF7405E4877815CA73" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_3EB5306A706FC85AC510E4877816D009" 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_2F7270118DFAAF304B42E48778168F3A" 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_C1A66125BEC678CF7405E4877815CA73" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_2F7270118DFAAF304B42E48778168F3A" 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_04DD78BC9CC7C8B575F4E4877816704E" 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_StockholdersEquityAbstract_C1A66125BEC678CF7405E4877815CA73" xlink:to="loc_us-gaap_StockholdersEquity_04DD78BC9CC7C8B575F4E4877816704E" 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_44C5F7AB80876CEB5493E4877816DB09" 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_LiabilitiesAndStockholdersEquityAbstract_CFF8EE2DCB57C67AFB10E48778136CB2" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquity_44C5F7AB80876CEB5493E4877816DB09" 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_D52FCBBC952D7276EB23E38381049195" 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_441E64C56F03A28DC5D4E38381041B40" 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_D52FCBBC952D7276EB23E38381049195" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_441E64C56F03A28DC5D4E38381041B40" 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_9E30E61DC9260F9A7CA3E38381049777" 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_D52FCBBC952D7276EB23E38381049195" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_9E30E61DC9260F9A7CA3E38381049777" 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_13E0C0E9D9120F1EF54DE3838104EC9C" 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_StatementOfFinancialPositionAbstract_D52FCBBC952D7276EB23E38381049195" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_13E0C0E9D9120F1EF54DE3838104EC9C" 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_D315AC0896B6E7163C2DE383810590CF" 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_StatementOfFinancialPositionAbstract_D52FCBBC952D7276EB23E38381049195" xlink:to="loc_us-gaap_CommonStockSharesIssued_D315AC0896B6E7163C2DE383810590CF" 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_9AB4479BE5B05F5774B2E3838105C670" 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_StatementOfFinancialPositionAbstract_D52FCBBC952D7276EB23E38381049195" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_9AB4479BE5B05F5774B2E3838105C670" 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_44C6DF2DD4E73A04F6E6E3851075B89D" 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_StatementOfFinancialPositionAbstract_D52FCBBC952D7276EB23E38381049195" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_44C6DF2DD4E73A04F6E6E3851075B89D" 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_4886F7F738AAAAE208A8CD8DA2536693" 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_7BC5EF10E1A48FD9FC45CD8DA253E791" 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_4886F7F738AAAAE208A8CD8DA2536693" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_7BC5EF10E1A48FD9FC45CD8DA253E791" 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_F3C80397B17D3F93EC3FCD8DA2539FE3" 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_7BC5EF10E1A48FD9FC45CD8DA253E791" xlink:to="loc_us-gaap_NetIncomeLoss_F3C80397B17D3F93EC3FCD8DA2539FE3" 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_A31B8F7E76E1B8AE9196CD8DA2536041" 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_7BC5EF10E1A48FD9FC45CD8DA253E791" xlink:to="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GainLossOnSaleOfBusiness" xlink:label="loc_us-gaap_GainLossOnSaleOfBusiness_4EA0A2416174A4CEC0E5CD8DA259954B" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_GainLossOnSaleOfBusiness_4EA0A2416174A4CEC0E5CD8DA259954B" 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_B40E5F961A8743406B8DCD8DA25916B0" 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_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_StockOptionPlanExpense_B40E5F961A8743406B8DCD8DA25916B0" 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_BE88762BF94343E90BC4CD8DA2599935" 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_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_Depreciation_BE88762BF94343E90BC4CD8DA2599935" 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_CEE52CCF7A04258D5E99CD8DA25A3111" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_CEE52CCF7A04258D5E99CD8DA25A3111" 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_6F71B56596C3D1239A62CD8DA25A7BAE" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_AssetImpairmentCharges_6F71B56596C3D1239A62CD8DA25A7BAE" 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_F689E68DD773FA597515CD8DA25A7112" 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_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_F689E68DD773FA597515CD8DA25A7112" 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_345717D635F065D0296CCD8DA25AD650" xlink:type="locator" />
    <link:presentationArc order="7" 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_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_345717D635F065D0296CCD8DA25AD650" 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_7281039B607C4B3B305ACD8DA25A5CA2" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_7281039B607C4B3B305ACD8DA25A5CA2" 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_AC2B969F092D45E67679CD8DA25BE035" 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_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_AC2B969F092D45E67679CD8DA25BE035" 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_9610073A4BD5F781C257CD8DA25BC962" xlink:type="locator" />
    <link:presentationArc order="10" 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_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_9610073A4BD5F781C257CD8DA25BC962" 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_0F6FBAEFB2D8C78EDDEBCD8DA25B900E" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInUnbilledReceivables_0F6FBAEFB2D8C78EDDEBCD8DA25B900E" 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_43EA5CD405113CD64D9ECD8DA25BE71F" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_43EA5CD405113CD64D9ECD8DA25BE71F" 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_885EC5F43DF4210B5192CD8DA25BE314" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_885EC5F43DF4210B5192CD8DA25BE314" 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_F6FF9D334AA6B17DC86BCD8DA25C21A1" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_F6FF9D334AA6B17DC86BCD8DA25C21A1" 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_A1466F4A4F3CF57459E6CD8DA25CE40F" 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_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_A1466F4A4F3CF57459E6CD8DA25CE40F" 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_96DEE05D8A40242C5D46CD8DA25CE64B" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_96DEE05D8A40242C5D46CD8DA25CE64B" 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_024A463D89038C13E667CD8DA25C2326" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_024A463D89038C13E667CD8DA25C2326" 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_2A64F95011652035A166CD8DA25CF12C" xlink:type="locator" />
    <link:presentationArc order="18" 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_A31B8F7E76E1B8AE9196CD8DA2536041" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2A64F95011652035A166CD8DA25CF12C" 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_0D12F25D255FF7D1AF9ECD8DA25C5996" 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_7BC5EF10E1A48FD9FC45CD8DA253E791" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_0D12F25D255FF7D1AF9ECD8DA25C5996" 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_6764E7259A267969D6A7CD8DA25DCF13" 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_4886F7F738AAAAE208A8CD8DA2536693" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_6764E7259A267969D6A7CD8DA25DCF13" 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_4366CBEC27E5720327C9CD8DA25DA28E" 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_6764E7259A267969D6A7CD8DA25DCF13" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_4366CBEC27E5720327C9CD8DA25DA28E" 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_4C996F4DD645AD2F366ECD8DA25D6308" 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_6764E7259A267969D6A7CD8DA25DCF13" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4C996F4DD645AD2F366ECD8DA25D6308" 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_38CB5456FD5CC964B4CDCD8DA25DCF21" 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_6764E7259A267969D6A7CD8DA25DCF13" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_38CB5456FD5CC964B4CDCD8DA25DCF21" 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_3E3BF3AE05968B8BD864CD8DA25E4971" 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_6764E7259A267969D6A7CD8DA25DCF13" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_3E3BF3AE05968B8BD864CD8DA25E4971" 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_263D163DC70CC8E29BDACD8DA25ED86C" 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_6764E7259A267969D6A7CD8DA25DCF13" xlink:to="loc_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_263D163DC70CC8E29BDACD8DA25ED86C" 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_1ED674322FE3089D84A9CD8DA25E26D9" 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_6764E7259A267969D6A7CD8DA25DCF13" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_1ED674322FE3089D84A9CD8DA25E26D9" 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_9622FA17BF27612048B9CD8DA25E778B" 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_4886F7F738AAAAE208A8CD8DA2536693" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9622FA17BF27612048B9CD8DA25E778B" 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_365549006F79B9606CB0CD8DA25E0274" 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_9622FA17BF27612048B9CD8DA25E778B" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_365549006F79B9606CB0CD8DA25E0274" 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_599FF7363833E08443F6CD8DA25F41B6" 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_9622FA17BF27612048B9CD8DA25E778B" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_599FF7363833E08443F6CD8DA25F41B6" 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_48D0714DB082E84A9D44CD8DA25F5B7C" 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_9622FA17BF27612048B9CD8DA25E778B" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_48D0714DB082E84A9D44CD8DA25F5B7C" 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_9AE4D1AC64F7367C5C1ACD8DA25F6B93" 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_9622FA17BF27612048B9CD8DA25E778B" xlink:to="loc_us-gaap_PaymentsForPreviousAcquisition_9AE4D1AC64F7367C5C1ACD8DA25F6B93" 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_05F88D3BF3E085BC6637CD8DA25FC21A" 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_9622FA17BF27612048B9CD8DA25E778B" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_05F88D3BF3E085BC6637CD8DA25FC21A" 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_33EF1F5871E042D1F7A5CD8DA25FB38E" 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_4886F7F738AAAAE208A8CD8DA2536693" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_33EF1F5871E042D1F7A5CD8DA25FB38E" 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_A0CD12063B836A7D05D0CD8DA2600F4F" 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_4886F7F738AAAAE208A8CD8DA2536693" xlink:to="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_A0CD12063B836A7D05D0CD8DA2600F4F" 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_36DEEB5D9B3CAC471B62CD8DA260B599" 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_4886F7F738AAAAE208A8CD8DA2536693" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_36DEEB5D9B3CAC471B62CD8DA260B599" 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_A181EF4DD91C09D4961CCD8DA260450C" 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_4886F7F738AAAAE208A8CD8DA2536693" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_A181EF4DD91C09D4961CCD8DA260450C" 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_92B5F7116BBB5D8083ADE4879C57424E" 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_32137FF3849BA7083187E4879C5807E3" 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_92B5F7116BBB5D8083ADE4879C57424E" xlink:to="loc_us-gaap_NetIncomeLoss_32137FF3849BA7083187E4879C5807E3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CashflowshedgesAbstract" xlink:label="loc_cgnx_CashflowshedgesAbstract_9930A39E9E3B45F7B143E4879C58AB3D" 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_92B5F7116BBB5D8083ADE4879C57424E" xlink:to="loc_cgnx_CashflowshedgesAbstract_9930A39E9E3B45F7B143E4879C58AB3D" 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_D5482F603392CF0A54B8E4879C58BAE7" 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_9930A39E9E3B45F7B143E4879C58AB3D" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_D5482F603392CF0A54B8E4879C58BAE7" 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_8F53A78345B17FB70535E4879C582F7E" 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_9930A39E9E3B45F7B143E4879C58AB3D" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_8F53A78345B17FB70535E4879C582F7E" 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_88328EB4E726D70D6F60E4879C597050" 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_9930A39E9E3B45F7B143E4879C58AB3D" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_88328EB4E726D70D6F60E4879C597050" 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_91F746F1D5A1F56233B0E4879C59AAB0" 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_92B5F7116BBB5D8083ADE4879C57424E" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_91F746F1D5A1F56233B0E4879C59AAB0" 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_86C519094A33F208F2A2E4879C599B0C" 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_91F746F1D5A1F56233B0E4879C59AAB0" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_86C519094A33F208F2A2E4879C599B0C" 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_17278E1B9057B83399E7E4879C594F73" 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_91F746F1D5A1F56233B0E4879C59AAB0" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_17278E1B9057B83399E7E4879C594F73" 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_191C63A369C6CD7851FDE4879C59D0BD" 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_91F746F1D5A1F56233B0E4879C59AAB0" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_191C63A369C6CD7851FDE4879C59D0BD" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CurrencytranslationadjustmentAbstract" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract_8D2F989C37EDDABEBC1BE4879C59E02A" 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_92B5F7116BBB5D8083ADE4879C57424E" xlink:to="loc_cgnx_CurrencytranslationadjustmentAbstract_8D2F989C37EDDABEBC1BE4879C59E02A" 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_A09B1B58F06754EE8E90E4879C5A76B9" 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_8D2F989C37EDDABEBC1BE4879C59E02A" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_A09B1B58F06754EE8E90E4879C5A76B9" 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_AC90C7BBA2741F659744E4879C5A32C7" 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_8D2F989C37EDDABEBC1BE4879C59E02A" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_AC90C7BBA2741F659744E4879C5A32C7" 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_45B0274FE865239F5EF2E4879C5AD147" 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_92B5F7116BBB5D8083ADE4879C57424E" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_45B0274FE865239F5EF2E4879C5AD147" 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_2AE2506E843D9C7822E9E4879C5AF66E" 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_92B5F7116BBB5D8083ADE4879C57424E" xlink:to="loc_us-gaap_ComprehensiveIncomeNetOfTax_2AE2506E843D9C7822E9E4879C5AF66E" 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_E4502CA71584A2541E82FA5C230F9CA9" 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_783A233C3A07AAE085E0FA5C230FDE03" 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_E4502CA71584A2541E82FA5C230F9CA9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_783A233C3A07AAE085E0FA5C230FDE03" 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_9413271FC3F1A26AE265FA5C230FC71C" 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_E4502CA71584A2541E82FA5C230F9CA9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_9413271FC3F1A26AE265FA5C230FC71C" 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_A33FDDE7E070D34BF27DFA5C230F53F9" 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_E4502CA71584A2541E82FA5C230F9CA9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_A33FDDE7E070D34BF27DFA5C230F53F9" 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_AA8509517349F87D803DE35136F91361" 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_61885FDCE9A2AC2000B5E35136F94C6D" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_61885FDCE9A2AC2000B5E35136F94C6D" 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_9BA0DF42E698C5C10A17E35136FA8282" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_9BA0DF42E698C5C10A17E35136FA8282" 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_65494ADD712D99733A63E35136FAF4E1" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_GrossProfit_65494ADD712D99733A63E35136FAF4E1" 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_8CF2BDC8E43E0CD03DF7E35136FA373E" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_8CF2BDC8E43E0CD03DF7E35136FA373E" 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_DD0A12FD1DF6CA1835D8E35136FAC314" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_DD0A12FD1DF6CA1835D8E35136FAC314" 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_14970880CB0EAD27BC45E35136FA38FD" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_OperatingIncomeLoss_14970880CB0EAD27BC45E35136FA38FD" 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_59F27ED932B5E5CC1F1DE35136FA7B3D" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_59F27ED932B5E5CC1F1DE35136FA7B3D" 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_73588D8090A88451DD27E35136FB9C80" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_73588D8090A88451DD27E35136FB9C80" 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_63C859C6E5619E35989BE35136FBB5E1" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_63C859C6E5619E35989BE35136FBB5E1" 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_C3C3667E658C985A25F4E35136FBEE62" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_C3C3667E658C985A25F4E35136FBEE62" 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_75AA31BDA4B4B580194BE35136FB4F98" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_75AA31BDA4B4B580194BE35136FB4F98" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperations" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperations_BC2FFE1349562B813767E35136FBBB1C" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperations_BC2FFE1349562B813767E35136FBBB1C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_CF02589988DA60F75804E35136FCAFB3" 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_IncomeStatementAbstract_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_CF02589988DA60F75804E35136FCAFB3" 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_999DDD56A3E1D791AAF5E35136FCBDB6" xlink:type="locator" />
    <link:presentationArc order="14" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_NetIncomeLoss_999DDD56A3E1D791AAF5E35136FCBDB6" 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_A661306E86E7681E040BE35136FC32C0" 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_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsPerBasicShare" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_F153726180E831165FDAE35136FCBE9A" 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_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_F153726180E831165FDAE35136FCBE9A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_BC73A2B21F4CFC1C1762E35136FC907F" 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_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare_BC73A2B21F4CFC1C1762E35136FC907F" 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_A7C01EE3E415C56FB123E35136FD1EC4" 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_EarningsPerShareBasicAbstract_A661306E86E7681E040BE35136FC32C0" xlink:to="loc_us-gaap_EarningsPerShareBasic_A7C01EE3E415C56FB123E35136FD1EC4" 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_ABFB497CC5C504FEB217E35136FDB491" 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_IncomeStatementAbstract_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_EarningsPerShareDilutedAbstract_ABFB497CC5C504FEB217E35136FDB491" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_E15672CB5A4EA12F8635E35136FD663C" 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_EarningsPerShareDilutedAbstract_ABFB497CC5C504FEB217E35136FDB491" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_E15672CB5A4EA12F8635E35136FD663C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_96E494D504305D64B848E35136FD16B3" 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_EarningsPerShareDilutedAbstract_ABFB497CC5C504FEB217E35136FDB491" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare_96E494D504305D64B848E35136FD16B3" 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_F9B1E8B19487B0CA044FE35136FD3234" 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_EarningsPerShareDilutedAbstract_ABFB497CC5C504FEB217E35136FDB491" xlink:to="loc_us-gaap_EarningsPerShareDiluted_F9B1E8B19487B0CA044FE35136FD3234" 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_7F485E36144556DDA144E35136FE8C94" 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_IncomeStatementAbstract_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_7F485E36144556DDA144E35136FE8C94" 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_A8AB60155FE808AB2355E35136FECB4B" 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_7F485E36144556DDA144E35136FE8C94" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_A8AB60155FE808AB2355E35136FECB4B" 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_4C7033BB14815A39B262E35136FEB72C" 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_7F485E36144556DDA144E35136FE8C94" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_4C7033BB14815A39B262E35136FEB72C" 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_6F9422628DB18E044353E35136FEBD1C" 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_IncomeStatementAbstract_AA8509517349F87D803DE35136F91361" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_6F9422628DB18E044353E35136FEBD1C" 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_719FED8E39C182C815DEE3773AB51196" 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_B878079D8C39A4C9EC6BE3773B104886" 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_719FED8E39C182C815DEE3773AB51196" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_B878079D8C39A4C9EC6BE3773B104886" 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_0F4FC38F82F12D5B2887E38380E02CA0" 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_868364AEB5768627AA65E38380E0E436" 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_0F4FC38F82F12D5B2887E38380E02CA0" xlink:to="loc_us-gaap_StatementTable_868364AEB5768627AA65E38380E0E436" 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_8E6D47EFC153B52BA842E38380E0446A" 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_868364AEB5768627AA65E38380E0E436" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_8E6D47EFC153B52BA842E38380E0446A" 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_1F5EC07BF5ECAD16ECCAE38380E12B96" 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_8E6D47EFC153B52BA842E38380E0446A" xlink:to="loc_us-gaap_EquityComponentDomain_1F5EC07BF5ECAD16ECCAE38380E12B96" 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_0B64355C3BB488A6392CE38380E171A2" 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_1F5EC07BF5ECAD16ECCAE38380E12B96" xlink:to="loc_us-gaap_CommonStockMember_0B64355C3BB488A6392CE38380E171A2" 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_C7160B48467D0AF91212E38380E18C0E" 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_1F5EC07BF5ECAD16ECCAE38380E12B96" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_C7160B48467D0AF91212E38380E18C0E" 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_CF79D0AB22D149041E2CE38380E1B354" 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_1F5EC07BF5ECAD16ECCAE38380E12B96" xlink:to="loc_us-gaap_RetainedEarningsMember_CF79D0AB22D149041E2CE38380E1B354" 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_47B3D339793462916CC7E38380E23B7A" 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_1F5EC07BF5ECAD16ECCAE38380E12B96" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_47B3D339793462916CC7E38380E23B7A" 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_3A597B3C1F922C662789E38380E26A8A" 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_868364AEB5768627AA65E38380E0E436" xlink:to="loc_us-gaap_StatementLineItems_3A597B3C1F922C662789E38380E26A8A" 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_DCD537EF959C5C3FE87EE38380E2C492" 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_3A597B3C1F922C662789E38380E26A8A" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_DCD537EF959C5C3FE87EE38380E2C492" 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_C90DC67383C87336180EE38380E27A44" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockholdersEquity_C90DC67383C87336180EE38380E27A44" 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_AD5113D58B7C02D800F1E38380E3B828" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_CommonStockSharesIssued_AD5113D58B7C02D800F1E38380E3B828" 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_46800B2F24558241C1FCE38380E34BA5" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_46800B2F24558241C1FCE38380E34BA5" 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_2BD406D0F5091FF5DFA2E38380E3988D" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2BD406D0F5091FF5DFA2E38380E3988D" 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_465A3B686E01BA57D2ABE38380E39E33" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_465A3B686E01BA57D2ABE38380E39E33" 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_B36B4C1AA19167ED9357E38380E36F24" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_B36B4C1AA19167ED9357E38380E36F24" 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_2F406EB602CC2E15D0A3E38380E3E8C7" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_2F406EB602CC2E15D0A3E38380E3E8C7" 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_C7934A62846F30712F11E38380E4B5C6" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_DividendsCommonStockCash_C7934A62846F30712F11E38380E4B5C6" 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_36A4A286DAC837621F4FE38380E41C3C" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_36A4A286DAC837621F4FE38380E41C3C" 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_3190C7FE4382FA76DE7BE38380E42A85" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_NetIncomeLoss_3190C7FE4382FA76DE7BE38380E42A85" 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_A6D729314FCC7806EA10E38380E4BB6F" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A6D729314FCC7806EA10E38380E4BB6F" 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_2D0204D19BC507FAAE1EE38380E4EB42" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_2D0204D19BC507FAAE1EE38380E4EB42" 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_82193FFA010AF0EC3B16E38380E55CA4" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_82193FFA010AF0EC3B16E38380E55CA4" 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_F32690DC449614F60EB3E38380E503A4" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_F32690DC449614F60EB3E38380E503A4" 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_18D69DF9D198D6E64029E38380E5905E" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_18D69DF9D198D6E64029E38380E5905E" 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_79C6E2CF25D944DCCD58E38380E504AD" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_StockholdersEquity_79C6E2CF25D944DCCD58E38380E504AD" 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_8E2DE192FC2B2BA3EBF8E38380E5538C" 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_DCD537EF959C5C3FE87EE38380E2C492" xlink:to="loc_us-gaap_CommonStockSharesIssued_8E2DE192FC2B2BA3EBF8E38380E5538C" 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_475FFF737A92C11637E5E38380D9B7CC" 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_26FBBCFD30A38E425C59E38CDB826596" 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_475FFF737A92C11637E5E38380D9B7CC" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_26FBBCFD30A38E425C59E38CDB826596" 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_319A0F1465DECCDA81BBE38380D994B9" 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_475FFF737A92C11637E5E38380D9B7CC" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_319A0F1465DECCDA81BBE38380D994B9" 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_5062790887A3B316A889E38380DA1453" 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_475FFF737A92C11637E5E38380D9B7CC" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_5062790887A3B316A889E38380DA1453" 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_AB0BAEF48E4CB6C77BA9E38380DA8A44" 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_475FFF737A92C11637E5E38380D9B7CC" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_AB0BAEF48E4CB6C77BA9E38380DA8A44" 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_A794F1A3220529AC3406FA5C2076E745" 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_426E9A56386EE2367623FA5C20764D90" 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_A794F1A3220529AC3406FA5C2076E745" xlink:to="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_426E9A56386EE2367623FA5C20764D90" 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_B9C0A1F0125546B50B09E4466A69786B" 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_2C7E25688508A5A23388E4466A6961F0" 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_B9C0A1F0125546B50B09E4466A69786B" xlink:to="loc_us-gaap_DerivativeTable_2C7E25688508A5A23388E4466A6961F0" 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_9AA1E7EF818CF7544780E4466A6A8138" 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_2C7E25688508A5A23388E4466A6961F0" xlink:to="loc_us-gaap_HedgingDesignationAxis_9AA1E7EF818CF7544780E4466A6A8138" 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_E0DA58411E5525C62067E4466A6A09CD" 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_9AA1E7EF818CF7544780E4466A6A8138" xlink:to="loc_us-gaap_HedgingDesignationDomain_E0DA58411E5525C62067E4466A6A09CD" 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_2DEFAB0317CAAD139C1DE4466A6AF4E4" 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_E0DA58411E5525C62067E4466A6A09CD" xlink:to="loc_us-gaap_NondesignatedMember_2DEFAB0317CAAD139C1DE4466A6AF4E4" 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_42372A1DCA6D9593C8E4E4466A6A170C" 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_E0DA58411E5525C62067E4466A6A09CD" xlink:to="loc_us-gaap_DesignatedAsHedgingInstrumentMember_42372A1DCA6D9593C8E4E4466A6A170C" 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_80D98D12E4A0A4C50ADEE4466A6B6443" 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_2C7E25688508A5A23388E4466A6961F0" xlink:to="loc_us-gaap_DerivativeLineItems_80D98D12E4A0A4C50ADEE4466A6B6443" 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_008CBFDC8A719E21F774E4466A6B5DAE" 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_80D98D12E4A0A4C50ADEE4466A6B6443" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_008CBFDC8A719E21F774E4466A6B5DAE" 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_3CB8729D9CEB63FAC26BE4466A6BC301" 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_80D98D12E4A0A4C50ADEE4466A6B6443" xlink:to="loc_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_3CB8729D9CEB63FAC26BE4466A6BC301" 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_CAA24083402BCABCDA30E3837E90B07A" 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_9044EF04AAAB957B49E5E3837E904E28" 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_CAA24083402BCABCDA30E3837E90B07A" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_9044EF04AAAB957B49E5E3837E904E28" 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_1710C8C06CF97F47EDFFE3837E90D6E3" 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_CAA24083402BCABCDA30E3837E90B07A" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_1710C8C06CF97F47EDFFE3837E90D6E3" 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_9B73137156E3F754F730E3837E91AB2F" 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_CAA24083402BCABCDA30E3837E90B07A" xlink:to="loc_us-gaap_DerivativeAssets_9B73137156E3F754F730E3837E91AB2F" 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_3F813B71253871A05561E3837E916412" 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_CAA24083402BCABCDA30E3837E90B07A" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_3F813B71253871A05561E3837E916412" 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_579E0CF9BB6912A94652E3837E913B3A" 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_CAA24083402BCABCDA30E3837E90B07A" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_579E0CF9BB6912A94652E3837E913B3A" 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_39768A455921699B25DCE3837E914DE9" 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_CAA24083402BCABCDA30E3837E90B07A" xlink:to="loc_us-gaap_DerivativeLiabilities_39768A455921699B25DCE3837E914DE9" 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_A1E8B62E6391251F2AB8E3837E9B5E7E" 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_CE7E95692C4D2BA9717FE3837EA0F4C6" 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_A1E8B62E6391251F2AB8E3837E9B5E7E" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_CE7E95692C4D2BA9717FE3837EA0F4C6" 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_A1B80C70F3F1D849B6E5E3837EA0CCB1" 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_CE7E95692C4D2BA9717FE3837EA0F4C6" xlink:to="loc_us-gaap_HedgingDesignationAxis_A1B80C70F3F1D849B6E5E3837EA0CCB1" 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_27EC0EC7664302EA0D52E3837EA12798" 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_A1B80C70F3F1D849B6E5E3837EA0CCB1" xlink:to="loc_us-gaap_HedgingDesignationDomain_27EC0EC7664302EA0D52E3837EA12798" 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_B7D0FE30E946467B6806E3837EA21F91" 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_27EC0EC7664302EA0D52E3837EA12798" xlink:to="loc_us-gaap_NondesignatedMember_B7D0FE30E946467B6806E3837EA21F91" 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_C5BFDF1A4E9290DA2A74E3837EA23BC0" 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_CE7E95692C4D2BA9717FE3837EA0F4C6" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_C5BFDF1A4E9290DA2A74E3837EA23BC0" 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_4A0274147AA6E563B1E8E3837EA26F8A" 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_C5BFDF1A4E9290DA2A74E3837EA23BC0" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_4A0274147AA6E563B1E8E3837EA26F8A" 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_B351AE0A8F345EC82417E3837EA2C051" 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_4A0274147AA6E563B1E8E3837EA26F8A" xlink:to="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_B351AE0A8F345EC82417E3837EA2C051" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AccruedExpensesMember" xlink:label="loc_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" 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_4A0274147AA6E563B1E8E3837EA26F8A" xlink:to="loc_cgnx_AccruedExpensesMember_4F587836E5A7A46EB6ECE3837EA2F981" 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_2706D5966C1F96EBA489E3837EA3A73D" 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_CE7E95692C4D2BA9717FE3837EA0F4C6" xlink:to="loc_us-gaap_DerivativesFairValueLineItems_2706D5966C1F96EBA489E3837EA3A73D" 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_556CF7BB007EC510E179E3837EA349BB" 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_2706D5966C1F96EBA489E3837EA3A73D" xlink:to="loc_us-gaap_DerivativeAssets_556CF7BB007EC510E179E3837EA349BB" 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_256147E0B68891D8431DE3837EA320AF" 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_2706D5966C1F96EBA489E3837EA3A73D" xlink:to="loc_us-gaap_DerivativeLiabilities_256147E0B68891D8431DE3837EA320AF" 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_ED22D61A6B75405E2848E4875E7FAC47" 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_9E52542412FFD214C220E4875E853C27" 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_ED22D61A6B75405E2848E4875E7FAC47" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9E52542412FFD214C220E4875E853C27" 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_804935AF4C8CC624DC97E4875E8518AE" 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_9E52542412FFD214C220E4875E853C27" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_804935AF4C8CC624DC97E4875E8518AE" 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_89AE2E6B53117450EEC6E4875E852D6E" 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_804935AF4C8CC624DC97E4875E8518AE" xlink:to="loc_us-gaap_EquityComponentDomain_89AE2E6B53117450EEC6E4875E852D6E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember" xlink:label="loc_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7" 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_89AE2E6B53117450EEC6E4875E852D6E" xlink:to="loc_us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember_70748B93B6F1A71D0D74E4875E86C2C7" 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_17053031F14FE0EDF7A7E4875E86B40A" 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_9E52542412FFD214C220E4875E853C27" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_17053031F14FE0EDF7A7E4875E86B40A" 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_3A13550226DCF2F7CE2CE4875E86079A" 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_17053031F14FE0EDF7A7E4875E86B40A" xlink:to="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" 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_80F5066218EDAD317773E4875E87162D" 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_3A13550226DCF2F7CE2CE4875E86079A" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_80F5066218EDAD317773E4875E87162D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7" 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_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTax_4A52378933DEBDAA08C2E4875E8767B7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax" xlink:label="loc_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494" 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_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" xlink:to="loc_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax_30864536B35D19104B23E4875E8A8494" 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_FFEC917F376679B9CF68E4875E8A20EF" 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_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_FFEC917F376679B9CF68E4875E8A20EF" 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_8D7571BF9214C7455BE5E4875E8BB47D" 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_AOCIAttributableToParentNetOfTaxRollForward_3A13550226DCF2F7CE2CE4875E86079A" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_8D7571BF9214C7455BE5E4875E8BB47D" 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_57A3D004FF19390F6BA8CD8D368ACB08" 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_08CAF89255C722B0ED75CD8D368A1E88" 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_57A3D004FF19390F6BA8CD8D368ACB08" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_08CAF89255C722B0ED75CD8D368A1E88" 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_D7EB1939CBDC6FA5B3ACCD8D368A4078" 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_08CAF89255C722B0ED75CD8D368A1E88" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_D7EB1939CBDC6FA5B3ACCD8D368A4078" 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_B151D29F77A7A69B578ACD8D368A04ED" 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_D7EB1939CBDC6FA5B3ACCD8D368A4078" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_B151D29F77A7A69B578ACD8D368A04ED" 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_1B40DCFF4F76F73DBEB0CD8D368B2A9A" 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_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_CashFlowHedgingMember_1B40DCFF4F76F73DBEB0CD8D368B2A9A" 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_4113C684929997FAC2AFCD8D368BBFE4" 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_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_SalesRevenueGoodsNetMember_4113C684929997FAC2AFCD8D368BBFE4" 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_6E69F9E70DFDDA49E5CECD8D368B1E4D" 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_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_6E69F9E70DFDDA49E5CECD8D368B1E4D" 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_19870686205552BC6606CD8D368B11BD" 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_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpenseMember_19870686205552BC6606CD8D368B11BD" 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_D2F53AB7844F2CD5099FCD8D368CE6D9" 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_B151D29F77A7A69B578ACD8D368A04ED" xlink:to="loc_us-gaap_ForeignCurrencyGainLossMember_D2F53AB7844F2CD5099FCD8D368CE6D9" 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_E0234162649E35305035CD8D368CB971" 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_08CAF89255C722B0ED75CD8D368A1E88" xlink:to="loc_us-gaap_HedgingDesignationAxis_E0234162649E35305035CD8D368CB971" 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_5B0307AC789E7FDE62D6CD8D368CAC37" 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_E0234162649E35305035CD8D368CB971" xlink:to="loc_us-gaap_HedgingDesignationDomain_5B0307AC789E7FDE62D6CD8D368CAC37" 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_9CC9C863F425EF1CE4C9CD8D368C49B4" 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_5B0307AC789E7FDE62D6CD8D368CAC37" xlink:to="loc_us-gaap_DesignatedAsHedgingInstrumentMember_9CC9C863F425EF1CE4C9CD8D368C49B4" 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_E1DC4380DA914B78DE53CD8D368DA3CA" 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_5B0307AC789E7FDE62D6CD8D368CAC37" xlink:to="loc_us-gaap_NondesignatedMember_E1DC4380DA914B78DE53CD8D368DA3CA" 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_1528C7077E7092F73ECBCD8D368DE5FF" 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_08CAF89255C722B0ED75CD8D368A1E88" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32" 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_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax_56CDF8E3D7EA76E384FFCD8D368DAD32" 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_7DF8BD7322958C84EE7ACD8D368D5C24" 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_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_7DF8BD7322958C84EE7ACD8D368D5C24" 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_3CB5BFC3B09DC1E0D749CD8D368E227A" 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_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_3CB5BFC3B09DC1E0D749CD8D368E227A" 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_A1A901E80B3AE8B18368CD8D368EDA06" 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_DerivativeInstrumentsGainLossLineItems_1528C7077E7092F73ECBCD8D368DE5FF" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_A1A901E80B3AE8B18368CD8D368EDA06" 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_E741E94DC777DBC2CE7BCD8D368EE6CD" 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_A1A901E80B3AE8B18368CD8D368EDA06" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_E741E94DC777DBC2CE7BCD8D368EE6CD" 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_7EEB564783EE75CE6C31E3837EAEAA92" 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_801171ED76C8F9D20D60E3837EAE6EBA" 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_7EEB564783EE75CE6C31E3837EAEAA92" xlink:to="loc_us-gaap_DerivativeTable_801171ED76C8F9D20D60E3837EAE6EBA" 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_ACF01A5163E8CC592EF4E3837EAFACF4" 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_801171ED76C8F9D20D60E3837EAE6EBA" xlink:to="loc_us-gaap_HedgingDesignationAxis_ACF01A5163E8CC592EF4E3837EAFACF4" 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_475CF75AC74B97D299C5E3837EAFCFB7" 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_ACF01A5163E8CC592EF4E3837EAFACF4" xlink:to="loc_us-gaap_HedgingDesignationDomain_475CF75AC74B97D299C5E3837EAFCFB7" 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_FDF4CAD18900BF36DA7FE3837EB08563" 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_475CF75AC74B97D299C5E3837EAFCFB7" xlink:to="loc_us-gaap_NondesignatedMember_FDF4CAD18900BF36DA7FE3837EB08563" 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_A9DA62630432CEEF6E40E3837EB0F844" 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_801171ED76C8F9D20D60E3837EAE6EBA" xlink:to="loc_srt_CurrencyAxis_A9DA62630432CEEF6E40E3837EB0F844" 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_223CEB91D9C2AB46295BE3837EB05615" 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_A9DA62630432CEEF6E40E3837EB0F844" xlink:to="loc_currency_AllCurrenciesDomain_223CEB91D9C2AB46295BE3837EB05615" 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_6825D1E21FB032D841ACE3837EB22C02" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_EUR_6825D1E21FB032D841ACE3837EB22C02" 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_0A921F816429DC65DDECE3837EB0CF5E" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_JPY_0A921F816429DC65DDECE3837EB0CF5E" 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_6813A2CDAD8EBEEC8B1CE3837EB12304" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_GBP_6813A2CDAD8EBEEC8B1CE3837EB12304" 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_1E768CECBE67C949F7F0E3837EB11DA7" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_KRW_1E768CECBE67C949F7F0E3837EB11DA7" 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_C9A649965625BEE19180E3837EB1A68D" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_HUF_C9A649965625BEE19180E3837EB1A68D" 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_94BF3FA900A31B7FAD76E3837EB7C94C" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_TWD_94BF3FA900A31B7FAD76E3837EB7C94C" 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_762052C1B580F7D0B902E3837EB7FB81" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_CAD_762052C1B580F7D0B902E3837EB7FB81" 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_3A7D73C2F29C8C6F03E5E3837EB1A76C" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_SGD_3A7D73C2F29C8C6F03E5E3837EB1A76C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_CHF" xlink:label="loc_currency_CHF_1594E3AB5AD77241969AE3837EB78C51" 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_223CEB91D9C2AB46295BE3837EB05615" xlink:to="loc_currency_CHF_1594E3AB5AD77241969AE3837EB78C51" 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_E73E2729B84D6B84DA9AE3837EB8C618" 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_801171ED76C8F9D20D60E3837EAE6EBA" xlink:to="loc_us-gaap_DerivativeLineItems_E73E2729B84D6B84DA9AE3837EB8C618" 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_55D5B9197506301EA3E5E3837EB8DA76" 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_E73E2729B84D6B84DA9AE3837EB8C618" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_55D5B9197506301EA3E5E3837EB8DA76" 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_E9035ADA29CE23714072FA5C217A69C8" 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_E4B8A33A033439FC857BFA5C217A5BBB" 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_E9035ADA29CE23714072FA5C217A69C8" xlink:to="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_E4B8A33A033439FC857BFA5C217A5BBB" 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_FBF6D7B0631A32A294C6FA5C217B938B" 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_E9035ADA29CE23714072FA5C217A69C8" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_FBF6D7B0631A32A294C6FA5C217B938B" 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_4DBC6E1AF6FE30C38CCAFA5C217B1F89" 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_E9035ADA29CE23714072FA5C217A69C8" xlink:to="loc_us-gaap_OffsettingAssetsTableTextBlock_4DBC6E1AF6FE30C38CCAFA5C217B1F89" 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_F6328EF24D2F9B541836FA5C217B2DCF" 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_E9035ADA29CE23714072FA5C217A69C8" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_F6328EF24D2F9B541836FA5C217B2DCF" 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_3EBC6C22D1EEE2F27E32FA5C217B5769" 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_E9035ADA29CE23714072FA5C217A69C8" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_3EBC6C22D1EEE2F27E32FA5C217B5769" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DiscontinuedOperations" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:label="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_75066E4D9D42295C64B5FA5C2522EBE5" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsPolicyTextBlock" xlink:label="loc_us-gaap_DiscontinuedOperationsPolicyTextBlock_310ED3FFC19BC795AB28FA5C252205E1" 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_DiscontinuedOperationsAndDisposalGroupsAbstract_75066E4D9D42295C64B5FA5C2522EBE5" xlink:to="loc_us-gaap_DiscontinuedOperationsPolicyTextBlock_310ED3FFC19BC795AB28FA5C252205E1" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DiscontinuedOperationsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:label="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_04133AF7970941E07816E4466957CC15" 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_D06528818772660002EFE44669579761" 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_DiscontinuedOperationsAndDisposalGroupsAbstract_04133AF7970941E07816E4466957CC15" xlink:to="loc_us-gaap_StatementTable_D06528818772660002EFE44669579761" 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_566F81D3B4D89AC6BA29E4466957BC88" 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_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_LitigationStatusAxis_566F81D3B4D89AC6BA29E4466957BC88" 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_AB4AFE05F99E3F5BC688E44669584830" 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_566F81D3B4D89AC6BA29E4466957BC88" xlink:to="loc_us-gaap_LitigationStatusDomain_AB4AFE05F99E3F5BC688E44669584830" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SettledLitigationMember" xlink:label="loc_us-gaap_SettledLitigationMember_AC2107C41101AFC8EEC6E446695857DA" 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_LitigationStatusDomain_AB4AFE05F99E3F5BC688E44669584830" xlink:to="loc_us-gaap_SettledLitigationMember_AC2107C41101AFC8EEC6E446695857DA" 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_36580B6DADF269737E01E4466958964A" 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_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_srt_LitigationCaseAxis_36580B6DADF269737E01E4466958964A" 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_1B6D8201AE8C5F22713BE44669582A0E" 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_36580B6DADF269737E01E4466958964A" xlink:to="loc_srt_LitigationCaseTypeDomain_1B6D8201AE8C5F22713BE44669582A0E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AMETEKMatterMember" xlink:label="loc_cgnx_AMETEKMatterMember_93B9873DEFFEB1FEB325E4466959CC6F" 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_LitigationCaseTypeDomain_1B6D8201AE8C5F22713BE44669582A0E" xlink:to="loc_cgnx_AMETEKMatterMember_93B9873DEFFEB1FEB325E4466959CC6F" 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_474B618E88021F9386C0E44669593D50" 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_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_474B618E88021F9386C0E44669593D50" 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_388D474419B5EC8644B3E446695954AB" 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_474B618E88021F9386C0E44669593D50" xlink:to="loc_us-gaap_LossContingencyNatureDomain_388D474419B5EC8644B3E446695954AB" 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_88A3DD2B1861842153A4E4466959974E" 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_388D474419B5EC8644B3E446695954AB" xlink:to="loc_us-gaap_GuaranteeObligationsMember_88A3DD2B1861842153A4E4466959974E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOperatingActivitiesSegmentAxis" xlink:label="loc_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" 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_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentOperatingActivitiesDomain" xlink:label="loc_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" 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_StatementOperatingActivitiesSegmentAxis_4C46B3118904AEF66765E446695A21B5" xlink:to="loc_us-gaap_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_559C5B1C31B5711F2B2DE446695A5133" 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_SegmentOperatingActivitiesDomain_91F2707D25ECEDAB01D7E446695A21BC" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_559C5B1C31B5711F2B2DE446695A5133" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E43DAE4766671B2B4982E446695AFCE9" 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_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E43DAE4766671B2B4982E446695AFCE9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_B1B552C9CFF092C75BA7E446695B7E2B" 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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E43DAE4766671B2B4982E446695AFCE9" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_B1B552C9CFF092C75BA7E446695B7E2B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SisdMember" xlink:label="loc_cgnx_SisdMember_329B1064119309FEA309E446695B1FFB" 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_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_B1B552C9CFF092C75BA7E446695B7E2B" xlink:to="loc_cgnx_SisdMember_329B1064119309FEA309E446695B1FFB" 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_B81781072576327D242FE446695BDCCE" 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_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_B81781072576327D242FE446695BDCCE" 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_45A4929AA3A8BA3A3788E446695BDD8F" 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_B81781072576327D242FE446695BDCCE" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_45A4929AA3A8BA3A3788E446695BDD8F" xlink:type="arc" />
    <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_DisposalGroupClassificationDomain_45A4929AA3A8BA3A3788E446695BDD8F" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_559C5B1C31B5711F2B2DE446695A5133" 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_D2D06D8B56E81EEA67E7E446695CAC97" 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_StatementTable_D06528818772660002EFE44669579761" xlink:to="loc_us-gaap_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_E2D765904A1A7CA4FD25E446695CAD69" 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_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_E2D765904A1A7CA4FD25E446695CAD69" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_C828454C9C38FBCEE554E446695C3697" 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_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_C828454C9C38FBCEE554E446695C3697" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationSettlementExpense" xlink:label="loc_us-gaap_LitigationSettlementExpense_BB05243CDA7AE539D6EDE446695C68E4" 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_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_us-gaap_LitigationSettlementExpense_BB05243CDA7AE539D6EDE446695C68E4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LegalFees" xlink:label="loc_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA" 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_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_us-gaap_LegalFees_DF8098554842D898D6F9E446695DE2AA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation" xlink:label="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_6905DA3B92979E6B25DCE446695DC354" 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_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_6905DA3B92979E6B25DCE446695DC354" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_5D91F7DD2D700CD4226BE446695DF386" 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_StatementLineItems_D2D06D8B56E81EEA67E7E446695CAC97" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_5D91F7DD2D700CD4226BE446695DF386" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:label="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_BA1490042040F53B164AE3837C67497F" 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_AC12BB5CF11902D7FDE7E3837C67AA5F" 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_DiscontinuedOperationsAndDisposalGroupsAbstract_BA1490042040F53B164AE3837C67497F" xlink:to="loc_us-gaap_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" 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_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" 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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_E4A410C44A34260E06DEE3837C6881BF" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SisdMember" xlink:label="loc_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" 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_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_75ECAA28D39A10F38EF2E3837C68419B" xlink:to="loc_cgnx_SisdMember_5D1939828DC6F00A6B2CE3837C69EE0E" 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_E52413417767BBCCF0BAE3837C690D61" 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_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_E52413417767BBCCF0BAE3837C690D61" 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_3EEB285A3290F062ADDAE3837C6A8625" 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_E52413417767BBCCF0BAE3837C690D61" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A" 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_DisposalGroupClassificationDomain_3EEB285A3290F062ADDAE3837C6A8625" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_91394150BEEDEBD799C1E3837C6A929A" 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_14AF77ADFA0F65076F0FE3837C6A434E" 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_StatementTable_AC12BB5CF11902D7FDE7E3837C67AA5F" xlink:to="loc_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation" xlink:label="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6" 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_14AF77ADFA0F65076F0FE3837C6A434E" xlink:to="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_024FAEDB01B471B14E3CE3837C6A64E6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_D312FC891ABAB7CCDC40E3837C6B2B2C" 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_us-gaap_StatementLineItems_14AF77ADFA0F65076F0FE3837C6A434E" xlink:to="loc_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity_D312FC891ABAB7CCDC40E3837C6B2B2C" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DiscontinuedOperationsTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract" xlink:label="loc_us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract_FC1BF2EEBA50CA34EA60E3837C8BB6BD" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock" xlink:label="loc_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock_DB8FB56140D25DB1924EE3837C8BDFCC" 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_DiscontinuedOperationsAndDisposalGroupsAbstract_FC1BF2EEBA50CA34EA60E3837C8BB6BD" xlink:to="loc_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock_DB8FB56140D25DB1924EE3837C8BDFCC" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DocumentAndEntityInformation" xlink:type="extended">
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_DocumentDocumentandEntityInformationAbstract" xlink:label="loc_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:type="locator" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_DocumentType" xlink:label="loc_dei_DocumentType_C320D9963422A46F7387E3513706A7BD" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_DocumentType_C320D9963422A46F7387E3513706A7BD" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_AmendmentFlag" xlink:label="loc_dei_AmendmentFlag_547C17D860221A029AB1E3513706AD37" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_AmendmentFlag_547C17D860221A029AB1E3513706AD37" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_dei_DocumentPeriodEndDate_F95A5926FCC7ED2E203DE3513707D9AF" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_DocumentPeriodEndDate_F95A5926FCC7ED2E203DE3513707D9AF" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="loc_dei_DocumentFiscalYearFocus_3732B87C0348C8A11F4FE3513707972D" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_DocumentFiscalYearFocus_3732B87C0348C8A11F4FE3513707972D" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="loc_dei_DocumentFiscalPeriodFocus_3718773F618F59A99546E351370736F5" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_DocumentFiscalPeriodFocus_3718773F618F59A99546E351370736F5" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_TradingSymbol" xlink:label="loc_dei_TradingSymbol_5940E669ADCBACAFD060E3513707FB40" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_TradingSymbol_5940E669ADCBACAFD060E3513707FB40" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityRegistrantName" xlink:label="loc_dei_EntityRegistrantName_595B2C892B53A4D55BA3E351370724C5" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityRegistrantName_595B2C892B53A4D55BA3E351370724C5" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="loc_dei_EntityCentralIndexKey_98E393996B89EA7FB76FE35137073C17" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityCentralIndexKey_98E393996B89EA7FB76FE35137073C17" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="loc_dei_CurrentFiscalYearEndDate_3CE2FC3F3A7B09338D20E35137087F4F" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_CurrentFiscalYearEndDate_3CE2FC3F3A7B09338D20E35137087F4F" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_D5CFA0ACC1E34A7CE506E3513708E58F" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityWellKnownSeasonedIssuer_D5CFA0ACC1E34A7CE506E3513708E58F" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="loc_dei_EntityCurrentReportingStatus_BAA22EF6340A26607714E3513708653E" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityCurrentReportingStatus_BAA22EF6340A26607714E3513708653E" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="loc_dei_EntityVoluntaryFilers_60D53C4027860361192EE35137084EC3" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityVoluntaryFilers_60D53C4027860361192EE35137084EC3" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityFilerCategory" xlink:label="loc_dei_EntityFilerCategory_087447916AEAB4D98E6DE35137086380" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityFilerCategory_087447916AEAB4D98E6DE35137086380" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntitySmallBusiness" xlink:label="loc_dei_EntitySmallBusiness_56B616CE08C308BFA1FDE360F07607A5" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntitySmallBusiness_56B616CE08C308BFA1FDE360F07607A5" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_dei_EntityEmergingGrowthCompany_619C46BAB0F639E758D1E363A009AB5C" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityEmergingGrowthCompany_619C46BAB0F639E758D1E363A009AB5C" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityShellCompany" xlink:label="loc_dei_EntityShellCompany_11D45FBEC6A35854F274E363D5F4B219" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityShellCompany_11D45FBEC6A35854F274E363D5F4B219" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_A1387D03C63393AEE30EE351370812D8" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityCommonStockSharesOutstanding_A1387D03C63393AEE30EE351370812D8" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2018/dei-2018-01-31.xsd#dei_EntityPublicFloat" xlink:label="loc_dei_EntityPublicFloat_B737CF89C0198C7E2A37E351370997C5" 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_cgnx_DocumentDocumentandEntityInformationAbstract_7695B5D7BF89A4749B60E3513705AE2D" xlink:to="loc_dei_EntityPublicFloat_B737CF89C0198C7E2A37E351370997C5" 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_24AEBA25EB6C52144CCAFA5C256A4EE6" 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_820A1A7AF74DDCA9601FFA5C256A69A5" 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_24AEBA25EB6C52144CCAFA5C256A4EE6" xlink:to="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_820A1A7AF74DDCA9601FFA5C256A69A5" 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_0BD3D6567781093784CD77F23196E3C1" 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_B74D1CBEE07CFBA53A7C77F2319B9C76" 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_0BD3D6567781093784CD77F23196E3C1" xlink:to="loc_us-gaap_DefinedContributionPlanTable_B74D1CBEE07CFBA53A7C77F2319B9C76" 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_A7CC5C1283C8BA1569ED77F2319C219C" 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_B74D1CBEE07CFBA53A7C77F2319B9C76" xlink:to="loc_us-gaap_TitleOfIndividualAxis_A7CC5C1283C8BA1569ED77F2319C219C" 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_29A4BF292B23FD469CEC77F2319CDAB0" 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_A7CC5C1283C8BA1569ED77F2319C219C" xlink:to="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_HighlyCompensatedEmployeeMember" xlink:label="loc_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" 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_TitleOfIndividualWithRelationshipToEntityDomain_29A4BF292B23FD469CEC77F2319CDAB0" xlink:to="loc_cgnx_HighlyCompensatedEmployeeMember_5C100EC76C1564011A9377F2319C1D0D" 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_4FAAFF225E2C77944C1377F2319D2F7C" 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_B74D1CBEE07CFBA53A7C77F2319B9C76" xlink:to="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_4FAAFF225E2C77944C1377F2319D2F7C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_A37C19DBD203D1F7B9C977F2319D9562" 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_E1962C5D75867D80A3E977F2319D6331" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_E1962C5D75867D80A3E977F2319D6331" 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_97745FD84D04D328054377F2319DFA85" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_97745FD84D04D328054377F2319DFA85" 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_E2C85D3618014E788B9377F2319D5800" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_E2C85D3618014E788B9377F2319D5800" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_70490DA59B687157109A77F2319E6960" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_95A0FF0CBBBFA5400CAB77F2319EB7FA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_818FA569B1A52B95B19777F2319E786E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompanyContributionsVestAtEndOfFiveYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_DA12DA7927DE9D6EAE2877F2319E3C7D" 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_C393B603CEDD9A031DFB77F2319E20A0" 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_4FAAFF225E2C77944C1377F2319D2F7C" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_C393B603CEDD9A031DFB77F2319E20A0" 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_8F5C8C3CE18B30B73187FA5C257F2DC9" 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_0E57C9EE2F212360EAF4FA5C257F408A" 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_8F5C8C3CE18B30B73187FA5C257F2DC9" xlink:to="loc_us-gaap_FairValueDisclosuresTextBlock_0E57C9EE2F212360EAF4FA5C257F408A" 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_450B163C33BD421F1965E3A874077F68" 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_E3763A59E5387F5B2582E3838075D369" 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_450B163C33BD421F1965E3A874077F68" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_E3763A59E5387F5B2582E3838075D369" 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_EC739F597B5D36C5801AE383807644E3" 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_E3763A59E5387F5B2582E3838075D369" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_EC739F597B5D36C5801AE383807644E3" 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_15B279531F799DB100E9E38380764864" 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_EC739F597B5D36C5801AE383807644E3" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_15B279531F799DB100E9E38380764864" 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_518FD30EB31F4870ECD0E3838077D173" 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_15B279531F799DB100E9E38380764864" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_518FD30EB31F4870ECD0E3838077D173" 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_D7FB8E06480B4C6816A3E38380770C8B" 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_15B279531F799DB100E9E38380764864" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_D7FB8E06480B4C6816A3E38380770C8B" 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_75C0FBDF6142D25FF87CE3838077D986" 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_15B279531F799DB100E9E38380764864" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_75C0FBDF6142D25FF87CE3838077D986" 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_8381C65DF1FF2C9A2C61E383807785C9" 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_E3763A59E5387F5B2582E3838075D369" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8381C65DF1FF2C9A2C61E383807785C9" 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_1E0DFB55291862E84E14E3838077BC71" 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_8381C65DF1FF2C9A2C61E383807785C9" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_1E0DFB55291862E84E14E3838077BC71" 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_276353BAF9CEC2D2D563E3838078AFF1" 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_1E0DFB55291862E84E14E3838077BC71" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_276353BAF9CEC2D2D563E3838078AFF1" 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_063CD2C5D5AC2A9BE686E3838078ECEA" 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_E3763A59E5387F5B2582E3838075D369" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_063CD2C5D5AC2A9BE686E3838078ECEA" 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_53E5AF62E518F8090AE8E38380782F4D" 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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_063CD2C5D5AC2A9BE686E3838078ECEA" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetImpairment_53E5AF62E518F8090AE8E38380782F4D" 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_A8B9877DD379D38F29CBE38380796B29" 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_063CD2C5D5AC2A9BE686E3838078ECEA" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_A8B9877DD379D38F29CBE38380796B29" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_1575DF8FFFA716F21B4EE3838079C4E4" 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_A8B9877DD379D38F29CBE38380796B29" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_1575DF8FFFA716F21B4EE3838079C4E4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CorporateBondsFairValueDisclosure" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_19447F1B81489474F06CE38380791BD9" 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_A8B9877DD379D38F29CBE38380796B29" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_19447F1B81489474F06CE38380791BD9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TreasuryBillsFairValueDisclosure" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_494754618085DB35B48EE383807971A4" 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_A8B9877DD379D38F29CBE38380796B29" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_494754618085DB35B48EE383807971A4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_AD312D6E9033F08DA181E3838079973F" 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_A8B9877DD379D38F29CBE38380796B29" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_AD312D6E9033F08DA181E3838079973F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SovereignBondsFairValueDisclosure" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_6A1DF8C2C7798CD2115EE383807995FC" 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_A8B9877DD379D38F29CBE38380796B29" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_6A1DF8C2C7798CD2115EE383807995FC" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AgencyBondsFairValueDisclosure" xlink:label="loc_cgnx_AgencyBondsFairValueDisclosure_6863047E496390FEC783E383807AEFE1" 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_A8B9877DD379D38F29CBE38380796B29" xlink:to="loc_cgnx_AgencyBondsFairValueDisclosure_6863047E496390FEC783E383807AEFE1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MunicipalBondsFairValueDisclosure" xlink:label="loc_cgnx_MunicipalBondsFairValueDisclosure_E6C7CAC6B84501C4ADC1E383807A9EB7" 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_A8B9877DD379D38F29CBE38380796B29" xlink:to="loc_cgnx_MunicipalBondsFairValueDisclosure_E6C7CAC6B84501C4ADC1E383807A9EB7" 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_9E35868C08A8FF183F25E383807A2554" 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_AssetsFairValueDisclosureAbstract_A8B9877DD379D38F29CBE38380796B29" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_9E35868C08A8FF183F25E383807A2554" 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_650ECA584520F19F49A3E383807AC887" 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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_063CD2C5D5AC2A9BE686E3838078ECEA" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_650ECA584520F19F49A3E383807AC887" 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_FC234D654853A5521B55E383807A4E71" 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_650ECA584520F19F49A3E383807AC887" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_FC234D654853A5521B55E383807A4E71" 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_40898912660A2FB19330E383807B53A2" 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_650ECA584520F19F49A3E383807AC887" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_40898912660A2FB19330E383807B53A2" 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_2DB3ACA50E5447342A50E383807B1AC7" 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_063CD2C5D5AC2A9BE686E3838078ECEA" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_2DB3ACA50E5447342A50E383807B1AC7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" xlink:label="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_C9C0FA01D335C321F79BE383807B22D4" 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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_063CD2C5D5AC2A9BE686E3838078ECEA" xlink:to="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_C9C0FA01D335C321F79BE383807B22D4" 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_ADB88AEA6D81B3C4BE78B9B05A2A55B7" 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_374CA037E0A434BE9857B9B05A2BCB99" 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_ADB88AEA6D81B3C4BE78B9B05A2A55B7" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_374CA037E0A434BE9857B9B05A2BCB99" 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_80E16DD590D31D5E1C42B9B05A2B4BC9" 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_374CA037E0A434BE9857B9B05A2BCB99" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_80E16DD590D31D5E1C42B9B05A2B4BC9" 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_D638CB27F467784F5E91B9B05A2BE45D" 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_80E16DD590D31D5E1C42B9B05A2B4BC9" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_D638CB27F467784F5E91B9B05A2BE45D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EnShapeGmbHMember" xlink:label="loc_cgnx_EnShapeGmbHMember_7879B960B5350463F4E4B9BE7C0A4CFE" 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_D638CB27F467784F5E91B9B05A2BE45D" xlink:to="loc_cgnx_EnShapeGmbHMember_7879B960B5350463F4E4B9BE7C0A4CFE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_7DA7F850264DD2CDDB63B9B05A2C2D11" 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_D638CB27F467784F5E91B9B05A2BE45D" xlink:to="loc_cgnx_ManateeWorksInc.Member_7DA7F850264DD2CDDB63B9B05A2C2D11" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_17F923C3584BABE19B93B9B05A2CFEF5" 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_D638CB27F467784F5E91B9B05A2BE45D" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_17F923C3584BABE19B93B9B05A2CFEF5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_92CB6515BD89D05C2354B9B05A2CC43A" 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_BusinessAcquisitionAcquireeDomain_D638CB27F467784F5E91B9B05A2BE45D" xlink:to="loc_cgnx_GViVenturesInc.Member_92CB6515BD89D05C2354B9B05A2CC43A" 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_536E7B392B71EEF31E99B9B05A2C0867" 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_374CA037E0A434BE9857B9B05A2BCB99" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_536E7B392B71EEF31E99B9B05A2C0867" 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_D951D94E2ED05DB7E967B9B05A2CCAAF" 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_536E7B392B71EEF31E99B9B05A2C0867" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" 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_A7B04BA8B4B849578E6BB9B05A2D51AE" 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_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_A7B04BA8B4B849578E6BB9B05A2D51AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E" 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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_EB476A3F53407141BB85B9B05A2D538E" 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_F1F97329B712955806CBB9B05A2D62AB" 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_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_LiabilitiesFairValueAdjustment_F1F97329B712955806CBB9B05A2D62AB" 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_E82288B2EE7BFF1D0836B9B05A2DC638" 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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_E82288B2EE7BFF1D0836B9B05A2DC638" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944" 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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_332A3B75F71F6D688962B9B05A2DC944" 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_D5AD3BBCB00CB5DF9DC9B9B05A2EE2EA" 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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_D951D94E2ED05DB7E967B9B05A2CCAAF" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_D5AD3BBCB00CB5DF9DC9B9B05A2EE2EA" 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_A6F1B189A511E13B28C2FA5C2317849B" 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_FA61DF051DE37ABB37D2FA5C231769DF" 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_A6F1B189A511E13B28C2FA5C2317849B" xlink:to="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_FA61DF051DE37ABB37D2FA5C231769DF" 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_C1941DC6AE15F29154CCFA5C2317F3D7" 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_A6F1B189A511E13B28C2FA5C2317849B" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_C1941DC6AE15F29154CCFA5C2317F3D7" 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_E3225E6F6EE4314260D1FA5C21A4B881" 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_45A82A475E2AE605C401FA5C21A44282" 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_E3225E6F6EE4314260D1FA5C21A4B881" xlink:to="loc_us-gaap_GoodwillDisclosureTextBlock_45A82A475E2AE605C401FA5C21A44282" 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_A11B839C61ADFB79BAA7E3837F7B7508" 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_84F7206FF233199D23D5E3837F7B4B7A" 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_A11B839C61ADFB79BAA7E3837F7B7508" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_84F7206FF233199D23D5E3837F7B4B7A" 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_00142331D38E141BEDF3E3837F7C1798" 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_84F7206FF233199D23D5E3837F7B4B7A" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_00142331D38E141BEDF3E3837F7C1798" 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_015ACA1FDC9AACA53382E3837F7C7FC1" 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_00142331D38E141BEDF3E3837F7C1798" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_015ACA1FDC9AACA53382E3837F7C7FC1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_2B6E2D26B314CEB82171E3ADAE2AACE5" 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_015ACA1FDC9AACA53382E3837F7C7FC1" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_2B6E2D26B314CEB82171E3ADAE2AACE5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_B301793D6BC6CF5AB9E2E3AE043B96FA" 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_015ACA1FDC9AACA53382E3837F7C7FC1" xlink:to="loc_cgnx_GViVenturesInc.Member_B301793D6BC6CF5AB9E2E3AE043B96FA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EnShapeGmbHMember" xlink:label="loc_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" 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_015ACA1FDC9AACA53382E3837F7C7FC1" xlink:to="loc_cgnx_EnShapeGmbHMember_A05DD5D8E1CBC6663285E3837F7DA90B" 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_846B141FB4EAA8A1E9DBE3837F82FA31" 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_84F7206FF233199D23D5E3837F7B4B7A" xlink:to="loc_us-gaap_GoodwillLineItems_846B141FB4EAA8A1E9DBE3837F82FA31" 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_5966181102F761940A94E3837F83293A" 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_846B141FB4EAA8A1E9DBE3837F82FA31" xlink:to="loc_us-gaap_GoodwillRollForward_5966181102F761940A94E3837F83293A" 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_C453030ABBD872DC7AE4E3837F83749D" 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_5966181102F761940A94E3837F83293A" xlink:to="loc_us-gaap_Goodwill_C453030ABBD872DC7AE4E3837F83749D" 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_29171BFB9EC475851E64E3837F8376A5" 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_5966181102F761940A94E3837F83293A" xlink:to="loc_us-gaap_GoodwillAcquiredDuringPeriod_29171BFB9EC475851E64E3837F8376A5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillPeriodIncreaseDecrease" xlink:label="loc_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67" 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_5966181102F761940A94E3837F83293A" xlink:to="loc_us-gaap_GoodwillPeriodIncreaseDecrease_3B0AB36F308E5ADC79EEE3837F84AF67" 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_7E2F94F58FE4C8167C1BE3837F835F2D" 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_5966181102F761940A94E3837F83293A" xlink:to="loc_us-gaap_Goodwill_7E2F94F58FE4C8167C1BE3837F835F2D" 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_F6F7E26C794EE13E6BB3FA5C2321CD83" 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_4A875A26CA7AC1CE0514FA5C23215A2C" 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_F6F7E26C794EE13E6BB3FA5C2321CD83" xlink:to="loc_us-gaap_ScheduleOfGoodwillTextBlock_4A875A26CA7AC1CE0514FA5C23215A2C" 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_1B759EC7BFB5AA0C7734FA5C24D74D1E" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_IndemnificationProvisionsTextBlock" xlink:label="loc_cgnx_IndemnificationProvisionsTextBlock_BE651D9E625B12E31BEDFA5C24D733FB" 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_1B759EC7BFB5AA0C7734FA5C24D74D1E" xlink:to="loc_cgnx_IndemnificationProvisionsTextBlock_BE651D9E625B12E31BEDFA5C24D733FB" 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_519761257CCF6FF2268DE4466A768BF8" 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_7AD5ACE3EEE1BC5EAD94E4466A774120" 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_519761257CCF6FF2268DE4466A768BF8" xlink:to="loc_us-gaap_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" 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_3C854BF9CE23C6B03426E4466A7706FC" 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_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_3C854BF9CE23C6B03426E4466A7706FC" 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_CEF20F5809EEA2283E4AE4466A77E608" 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_3C854BF9CE23C6B03426E4466A7706FC" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_CEF20F5809EEA2283E4AE4466A77E608" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_63C1A0370BD219F05F70E4466A780476" 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_DisposalGroupClassificationDomain_CEF20F5809EEA2283E4AE4466A77E608" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_63C1A0370BD219F05F70E4466A780476" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_68377DD3E32E89B72B68E4466A7804FF" 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_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_68377DD3E32E89B72B68E4466A7804FF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_EC563983707A60362EC4E4466A78FE08" 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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_68377DD3E32E89B72B68E4466A7804FF" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_EC563983707A60362EC4E4466A78FE08" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SisdMember" xlink:label="loc_cgnx_SisdMember_15A6263B819E55937F4BE4466A788974" 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_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_EC563983707A60362EC4E4466A78FE08" xlink:to="loc_cgnx_SisdMember_15A6263B819E55937F4BE4466A788974" 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_8766E652DD9666EEE4A6E4466A7971EB" 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_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_srt_LitigationCaseAxis_8766E652DD9666EEE4A6E4466A7971EB" 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_43E5098F39B4796A1CBBE4466A7981E3" 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_8766E652DD9666EEE4A6E4466A7971EB" xlink:to="loc_srt_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AMETEKMatterMember" xlink:label="loc_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" 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_LitigationCaseTypeDomain_43E5098F39B4796A1CBBE4466A7981E3" xlink:to="loc_cgnx_AMETEKMatterMember_24337593C733D31B91AAE4466A793BA6" 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_8E7B0DDB918CB8177949E4466A79A17E" 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_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_us-gaap_LitigationStatusAxis_8E7B0DDB918CB8177949E4466A79A17E" 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_B83619FF3B5C751A730BE4466A7A3F9B" 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_8E7B0DDB918CB8177949E4466A79A17E" xlink:to="loc_us-gaap_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SettledLitigationMember" xlink:label="loc_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140" 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_LitigationStatusDomain_B83619FF3B5C751A730BE4466A7A3F9B" xlink:to="loc_us-gaap_SettledLitigationMember_3F76E4ADC6FD6D85F2EEE4466A7A1140" 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_DDFF140D97E8278E38DDE4466A7A857B" 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_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_DDFF140D97E8278E38DDE4466A7A857B" 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_52C65E3EFA69E2D4E41EE4466A7AB2F8" 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_DDFF140D97E8278E38DDE4466A7A857B" xlink:to="loc_us-gaap_LossContingencyNatureDomain_52C65E3EFA69E2D4E41EE4466A7AB2F8" 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_72B956BD38925E7E2282E4466A7B31CD" 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_52C65E3EFA69E2D4E41EE4466A7AB2F8" xlink:to="loc_us-gaap_GuaranteeObligationsMember_72B956BD38925E7E2282E4466A7B31CD" 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_83E7B97EFAE02C2442B6E4466A7BD734" 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_LossContingenciesTable_7AD5ACE3EEE1BC5EAD94E4466A774120" xlink:to="loc_us-gaap_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" 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_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:to="loc_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue_0700B6FC07A789AD91F0E4466A7B4078" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue" xlink:label="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" 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_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:to="loc_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue_8B51CF20D0F5EE49C49BE4466A7B7CCD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationSettlementExpense" xlink:label="loc_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269" 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_LossContingenciesLineItems_83E7B97EFAE02C2442B6E4466A7BD734" xlink:to="loc_us-gaap_LitigationSettlementExpense_30F2830EE5ABC8CC9A7AE4466A7B0269" 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_FE23BE907AF8C373CD64FA5C20F5526E" 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_AF08897817EF9F5D8D52FA5C20F6EDDF" 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_FE23BE907AF8C373CD64FA5C20F5526E" xlink:to="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_AF08897817EF9F5D8D52FA5C20F6EDDF" 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_8D00A9D1C8BDB733F0E1E3837F5A9AD2" 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_0690E033FC6E9261DFF5E3837F5A7625" 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_8D00A9D1C8BDB733F0E1E3837F5A9AD2" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_0690E033FC6E9261DFF5E3837F5A7625" 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_921F84A94784C218C27DE3837F5A6706" 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_0690E033FC6E9261DFF5E3837F5A7625" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_921F84A94784C218C27DE3837F5A6706" 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_D4F0A7327CAC3C0268E5E3837F5BD820" 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_921F84A94784C218C27DE3837F5A6706" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_D4F0A7327CAC3C0268E5E3837F5BD820" 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_E9F3569A98F436B7A24FE3837F5BBF51" 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_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_us-gaap_DistributionRightsMember_E9F3569A98F436B7A24FE3837F5BBF51" 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_246C1E43BE478099AF3CE3837F5B1DDD" 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_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_246C1E43BE478099AF3CE3837F5B1DDD" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_2ED9A00DFFF65BC1022DE3837F5B2E30" 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_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_2ED9A00DFFF65BC1022DE3837F5B2E30" 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_7D89A1DB8650A5673CA4E3837F5CB69F" 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_FiniteLivedIntangibleAssetsMajorClassNameDomain_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_7D89A1DB8650A5673CA4E3837F5CB69F" 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_0D77FF9B0307D5ED2544E3837F5CB4A9" 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_D4F0A7327CAC3C0268E5E3837F5BD820" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_0D77FF9B0307D5ED2544E3837F5CB4A9" 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_64A48E7EC4A85179B7E8E3837F5CE997" 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_0690E033FC6E9261DFF5E3837F5A7625" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_64A48E7EC4A85179B7E8E3837F5CE997" 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_591D30ED9EAB06FFBE9DE3837F5CDA3F" 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_64A48E7EC4A85179B7E8E3837F5CE997" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_591D30ED9EAB06FFBE9DE3837F5CDA3F" 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_3AEE8E580AF212B11058E3837F5CD0D2" 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_64A48E7EC4A85179B7E8E3837F5CE997" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_3AEE8E580AF212B11058E3837F5CD0D2" 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_DE8C61E1166D81060488E3837F5DD728" 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_FiniteLivedIntangibleAssetsLineItems_64A48E7EC4A85179B7E8E3837F5CE997" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_DE8C61E1166D81060488E3837F5DD728" 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_FA8E41D9AA17D7B154C1E3837F497E81" 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_D804C2AB2DFC8C7321E8E3837F49710C" 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_FA8E41D9AA17D7B154C1E3837F497E81" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_D804C2AB2DFC8C7321E8E3837F49710C" 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_C32C78CA4F5040C556D3E3837F49E52C" 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_FA8E41D9AA17D7B154C1E3837F497E81" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_C32C78CA4F5040C556D3E3837F49E52C" 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_8A5C3A043F1689FC5CC7E3837F4AC391" 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_FA8E41D9AA17D7B154C1E3837F497E81" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_8A5C3A043F1689FC5CC7E3837F4AC391" 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_4669BF64336A02B5A677E3837F4ADA7C" 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_FA8E41D9AA17D7B154C1E3837F497E81" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_4669BF64336A02B5A677E3837F4ADA7C" 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_43AA13AB80F8EFDA0BE1E3837F4AB12F" 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_FA8E41D9AA17D7B154C1E3837F497E81" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_43AA13AB80F8EFDA0BE1E3837F4AB12F" 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_E3D9D903204ECE5A74C6E3837F4A5C6B" 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_FA8E41D9AA17D7B154C1E3837F497E81" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_E3D9D903204ECE5A74C6E3837F4A5C6B" 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_B2D5FF3F59DBBC0931C8E3837F4AEF23" 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_FA8E41D9AA17D7B154C1E3837F497E81" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_B2D5FF3F59DBBC0931C8E3837F4AEF23" 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_17D5400C589228BDB19BFA5C25D95662" 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_ADAD9822C7D5273B1CD4FA5C25D97B7F" 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_17D5400C589228BDB19BFA5C25D95662" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_ADAD9822C7D5273B1CD4FA5C25D97B7F" 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_FB3CF5CBE20F23006626FA5C25DA4D39" 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_17D5400C589228BDB19BFA5C25D95662" xlink:to="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_FB3CF5CBE20F23006626FA5C25DA4D39" 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_888F88C6050518A4BA06FA5C20F8921B" 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_C50674D7126F72F827A6FA5C20F859F7" 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_888F88C6050518A4BA06FA5C20F8921B" xlink:to="loc_us-gaap_InventoryDisclosureTextBlock_C50674D7126F72F827A6FA5C20F859F7" 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_90CFF9153FDAC71A0BDAFA5C2519AF71" 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_FC9CF7688E726BAE6ABCFA5C251A0FD2" 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_90CFF9153FDAC71A0BDAFA5C2519AF71" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_FC9CF7688E726BAE6ABCFA5C251A0FD2" 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_3F1691BDADF50848F3F0FA5C251AA28D" 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_90CFF9153FDAC71A0BDAFA5C2519AF71" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_3F1691BDADF50848F3F0FA5C251AA28D" 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_CB946B1377CBE7D8D22BFA5C251A96BF" 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_90CFF9153FDAC71A0BDAFA5C2519AF71" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_CB946B1377CBE7D8D22BFA5C251A96BF" 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_21CC8E6A376C7147DD10FA5C251F5476" 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_90CFF9153FDAC71A0BDAFA5C2519AF71" xlink:to="loc_us-gaap_InventoryNet_21CC8E6A376C7147DD10FA5C251F5476" 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_0CC7EEF638C8A0B1AAFBFA5C24AD24A2" 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_BB110B6FCC02C5157ED0FA5C24AD487F" 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_0CC7EEF638C8A0B1AAFBFA5C24AD24A2" xlink:to="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_BB110B6FCC02C5157ED0FA5C24AD487F" 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_3E1628C701054E2CE609FA5C20CEC72D" 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_BE290D3028283B41ED26FA5C20CED058" 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_3E1628C701054E2CE609FA5C20CEC72D" xlink:to="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_BE290D3028283B41ED26FA5C20CED058" 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_6BE17626D5182EDC45E2E38380922F82" 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_B9EB844B9419C1C0CAF1E3A3DE227B65" 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_6BE17626D5182EDC45E2E38380922F82" xlink:to="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_B9EB844B9419C1C0CAF1E3A3DE227B65" 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_0939F992C8D4188C7A19E3A5662B9BC9" 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_B9EB844B9419C1C0CAF1E3A3DE227B65" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_0939F992C8D4188C7A19E3A5662B9BC9" 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_361C553FC8F33B20C54AE3A5662BA5A5" 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_0939F992C8D4188C7A19E3A5662B9BC9" xlink:to="loc_us-gaap_TypeOfAdoptionMember_361C553FC8F33B20C54AE3A5662BA5A5" 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_2B972137BC8B2641B7FAE3A58D6BBA24" 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_361C553FC8F33B20C54AE3A5662BA5A5" xlink:to="loc_us-gaap_AccountingStandardsUpdate201602Member_2B972137BC8B2641B7FAE3A58D6BBA24" 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_D01DAE631C8BDE13C35AE3A51143C563" 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_B9EB844B9419C1C0CAF1E3A3DE227B65" xlink:to="loc_us-gaap_StatementScenarioAxis_D01DAE631C8BDE13C35AE3A51143C563" 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_4E14FDB50F975B7279B9E3A5114347A5" 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_D01DAE631C8BDE13C35AE3A51143C563" xlink:to="loc_us-gaap_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScenarioPlanMember" xlink:label="loc_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5" 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_ScenarioUnspecifiedDomain_4E14FDB50F975B7279B9E3A5114347A5" xlink:to="loc_us-gaap_ScenarioPlanMember_89CB780D572AC3703D87E3A53B1B8FB5" 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_2EAC075E1A4A41B79926E3A3DE22D576" 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_B9EB844B9419C1C0CAF1E3A3DE227B65" xlink:to="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_2EAC075E1A4A41B79926E3A3DE22D576" 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_CA802F4A9B9DED468305E3A49D0AE755" 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_2EAC075E1A4A41B79926E3A3DE22D576" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_CA802F4A9B9DED468305E3A49D0AE755" 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_E32D72CC0FADD3561F55E3A74B0ABC54" 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_2EAC075E1A4A41B79926E3A3DE22D576" xlink:to="loc_us-gaap_OperatingLeaseLiability_E32D72CC0FADD3561F55E3A74B0ABC54" 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_1D9DCB69335827EF3177FA5C23CD6505" 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_1A4E78FDE59B60AE5DF7FA5C23CD2F69" 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_1D9DCB69335827EF3177FA5C23CD6505" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_1A4E78FDE59B60AE5DF7FA5C23CD2F69" 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_4EF05CE85395FBA4E1FDE3837F98C5B2" 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_EB20C0AE90CA01CDAC25E3837F9AB6C3" 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_4EF05CE85395FBA4E1FDE3837F98C5B2" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_EB20C0AE90CA01CDAC25E3837F9AB6C3" 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_702DBEE4C39E4B0BD31CE3837F9AEC19" 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_4EF05CE85395FBA4E1FDE3837F98C5B2" xlink:to="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_702DBEE4C39E4B0BD31CE3837F9AEC19" 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_2F77B36DF8BF9ABC130AE3837F9BD2C7" 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_4EF05CE85395FBA4E1FDE3837F98C5B2" xlink:to="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_2F77B36DF8BF9ABC130AE3837F9BD2C7" 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_A6219F4CD39252CAE7D4E3837FA6FD34" 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_F9212AEFAD158D5FDF49E3837FA61238" 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_A6219F4CD39252CAE7D4E3837FA6FD34" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_F9212AEFAD158D5FDF49E3837FA61238" 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_9CCDAC483C2AF7A24316E3837FA779D4" 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_F9212AEFAD158D5FDF49E3837FA61238" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_9CCDAC483C2AF7A24316E3837FA779D4" 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_FC19F12077FC405D9BB3E3837FA7C325" 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_9CCDAC483C2AF7A24316E3837FA779D4" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_FC19F12077FC405D9BB3E3837FA7C325" 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_FDDBA54BE3BF1ECC7BEFE3837FA7D13F" 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_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_LandMember_FDDBA54BE3BF1ECC7BEFE3837FA7D13F" 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_9F3EA65A8E60F34A7ECCE3837FA8B1B4" 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_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_BuildingMember_9F3EA65A8E60F34A7ECCE3837FA8B1B4" 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_13434B21E4DC4B541D8AE3837FA8E79F" 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_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_BuildingImprovementsMember_13434B21E4DC4B541D8AE3837FA8E79F" 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_AD346C77F1C785F35BDBE3837FA8146D" 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_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_AD346C77F1C785F35BDBE3837FA8146D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_HardwareAndSoftwareMember" xlink:label="loc_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" 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_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_cgnx_HardwareAndSoftwareMember_1D7B7B12DBA26FCD36DCE3837FA8B908" 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_E8E750F1A27D104F2D0BE3837FA8AB6D" 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_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_EquipmentMember_E8E750F1A27D104F2D0BE3837FA8AB6D" 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_B2CF10C3F966672038D2E3837FA95751" 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_FC19F12077FC405D9BB3E3837FA7C325" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_B2CF10C3F966672038D2E3837FA95751" 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_204ED415D26D7B7DF5F1E3837FA94271" 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_F9212AEFAD158D5FDF49E3837FA61238" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204ED415D26D7B7DF5F1E3837FA94271" 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_EF60BAD017EC706AEA6BE3837FA9C387" 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_204ED415D26D7B7DF5F1E3837FA94271" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_EF60BAD017EC706AEA6BE3837FA9C387" 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_BD8D0F06750CB62C6FBFE3837FA97AFA" 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_204ED415D26D7B7DF5F1E3837FA94271" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_BD8D0F06750CB62C6FBFE3837FA97AFA" 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_0BD6EF50F448B133BE55E3837FAF340A" 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_204ED415D26D7B7DF5F1E3837FA94271" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_0BD6EF50F448B133BE55E3837FAF340A" 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_F50B9C8F67C197A150FCFA5C25DC3461" 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_D9A743FB17B2F01BAE5AFA5C25DC5A73" 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_F50B9C8F67C197A150FCFA5C25DC3461" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_D9A743FB17B2F01BAE5AFA5C25DC5A73" 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_1A8EE6115C3D9623040296068F28815B" 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_BED2205FAB9C2ED5EC0B9606F0D99B6D" 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_1A8EE6115C3D9623040296068F28815B" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_BED2205FAB9C2ED5EC0B9606F0D99B6D" 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_BE7B0796D7B1D39808AFE3837E35CDA4" 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_D2D5F0B0B3C4E05ECF8AE3837E359BF8" 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_BE7B0796D7B1D39808AFE3837E35CDA4" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_D2D5F0B0B3C4E05ECF8AE3837E359BF8" 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_DBD6B3380FE3025D2B39E3837E36537A" 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_D2D5F0B0B3C4E05ECF8AE3837E359BF8" xlink:to="loc_srt_RestatementAxis_DBD6B3380FE3025D2B39E3837E36537A" 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_9CB0E781F2F233BD3627E3837E365539" 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_DBD6B3380FE3025D2B39E3837E36537A" xlink:to="loc_srt_RestatementDomain_9CB0E781F2F233BD3627E3837E365539" 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_65B3F5F8B02730D51EB8E3837E3640DC" 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_9CB0E781F2F233BD3627E3837E365539" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_65B3F5F8B02730D51EB8E3837E3640DC" 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_6516E9B81CB604C7CFD2E3837E36F53A" 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_9CB0E781F2F233BD3627E3837E365539" xlink:to="loc_srt_RestatementAdjustmentMember_6516E9B81CB604C7CFD2E3837E36F53A" 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_9EDA1DAB7E350C3BD411E3837E372DE3" 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_D2D5F0B0B3C4E05ECF8AE3837E359BF8" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9EDA1DAB7E350C3BD411E3837E372DE3" 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_E4425C27564B91B2401EE3837E37633F" 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_9EDA1DAB7E350C3BD411E3837E372DE3" xlink:to="loc_us-gaap_TypeOfAdoptionMember_E4425C27564B91B2401EE3837E37633F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201409Member_9EC99E294EA868A33421E3837E38CE34" 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_E4425C27564B91B2401EE3837E37633F" xlink:to="loc_us-gaap_AccountingStandardsUpdate201409Member_9EC99E294EA868A33421E3837E38CE34" 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_BF438D1A53CEEDABD3C2E3837E38C79A" 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_D2D5F0B0B3C4E05ECF8AE3837E359BF8" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_BF438D1A53CEEDABD3C2E3837E38C79A" 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_3B4DB82B52B52DDB6F3CE3837E3DEA93" 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_BF438D1A53CEEDABD3C2E3837E38C79A" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_3B4DB82B52B52DDB6F3CE3837E3DEA93" 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_A7639F298485A189EC1FE3837E3EEF6F" 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_BF438D1A53CEEDABD3C2E3837E38C79A" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_A7639F298485A189EC1FE3837E3EEF6F" 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_B18918C1A1BB989B7E47E3837E3E46E0" 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_BF438D1A53CEEDABD3C2E3837E38C79A" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_B18918C1A1BB989B7E47E3837E3E46E0" 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_FF332A187D2D717DB228E3837E3E35E9" 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_BF438D1A53CEEDABD3C2E3837E38C79A" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_FF332A187D2D717DB228E3837E3E35E9" 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_23EB0ECD329086671A9E966504B53E4F" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:label="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_BC758216697003E6AD2596817F25285F" 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_23EB0ECD329086671A9E966504B53E4F" xlink:to="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_BC758216697003E6AD2596817F25285F" 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_AE4A2152BDDEEB43BF8D966504B57994" 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_BC758216697003E6AD2596817F25285F" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_AE4A2152BDDEEB43BF8D966504B57994" 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_7FE01E785BE50061DA2D966504B5D0E8" 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_BC758216697003E6AD2596817F25285F" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_7FE01E785BE50061DA2D966504B5D0E8" 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_48A18CB1233951A9BF64966504B58972" 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_BC758216697003E6AD2596817F25285F" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_48A18CB1233951A9BF64966504B58972" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:label="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_F4C952807A919176C00D966504B5A9CF" 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_BC758216697003E6AD2596817F25285F" xlink:to="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_F4C952807A919176C00D966504B5A9CF" 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_3B53D1772F9A7F1339CC966504B61268" 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_BC758216697003E6AD2596817F25285F" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_3B53D1772F9A7F1339CC966504B61268" 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_71FC2DD6A666F25CBF9FE3837E26E1A4" 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_45B16A028932B304D1BFE3837E263091" 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_71FC2DD6A666F25CBF9FE3837E26E1A4" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_45B16A028932B304D1BFE3837E263091" 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_3A5E3E4785DA047A139AE3837E2755A6" 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_45B16A028932B304D1BFE3837E263091" xlink:to="loc_srt_StatementGeographicalAxis_3A5E3E4785DA047A139AE3837E2755A6" 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_D0DB881CFF3F275FD747E3837E2710B7" 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_3A5E3E4785DA047A139AE3837E2755A6" xlink:to="loc_srt_SegmentGeographicalDomain_D0DB881CFF3F275FD747E3837E2710B7" 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_8007103EF3E96326E1B5E3837E288D3D" 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_D0DB881CFF3F275FD747E3837E2710B7" xlink:to="loc_srt_AmericasMember_8007103EF3E96326E1B5E3837E288D3D" 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_34DD253CEF7EE654BB63E3837E29C0F1" 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_D0DB881CFF3F275FD747E3837E2710B7" xlink:to="loc_srt_EuropeMember_34DD253CEF7EE654BB63E3837E29C0F1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_2278F49C283DD1AAB033E3837E29867A" 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_D0DB881CFF3F275FD747E3837E2710B7" xlink:to="loc_cgnx_GreaterChinaMember_2278F49C283DD1AAB033E3837E29867A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OtherAsiaMember" xlink:label="loc_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" 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_D0DB881CFF3F275FD747E3837E2710B7" xlink:to="loc_cgnx_OtherAsiaMember_9F1CCF0B0D10EA49CA70E3837E293907" 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_BF0134427077EE89A708E3837E29AE81" 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_45B16A028932B304D1BFE3837E263091" xlink:to="loc_srt_ProductOrServiceAxis_BF0134427077EE89A708E3837E29AE81" 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_B4F482C80A8CFC276CC7E3837E293B34" 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_BF0134427077EE89A708E3837E29AE81" xlink:to="loc_srt_ProductsAndServicesDomain_B4F482C80A8CFC276CC7E3837E293B34" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_StandardProductandServicesMember" xlink:label="loc_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" 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_B4F482C80A8CFC276CC7E3837E293B34" xlink:to="loc_cgnx_StandardProductandServicesMember_CCE852199953126B2F8BE3837E2A2E5A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" 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_B4F482C80A8CFC276CC7E3837E293B34" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_87239DAF89F3A224290DE3837E2A36BB" 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_2739769F525E0568074FE3837E2A7293" 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_45B16A028932B304D1BFE3837E263091" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_2739769F525E0568074FE3837E2A7293" 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_925A647C4D863ABC3CFDE3837E2A5CBA" 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_2739769F525E0568074FE3837E2A7293" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_925A647C4D863ABC3CFDE3837E2A5CBA" 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_41A3AFC680D8E56B9E39E3BEBE4C5BCD" 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_FC17AF6BACB78C39C63AE3837E59EE08" 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_41A3AFC680D8E56B9E39E3BEBE4C5BCD" xlink:to="loc_us-gaap_CapitalizedContractCostGross_FC17AF6BACB78C39C63AE3837E59EE08" 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_B05A7E21A09ACDFF78DAE85BA709DF05" 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_192F1A84D54199E8B1DDE85BA709B2DC" 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_B05A7E21A09ACDFF78DAE85BA709DF05" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_192F1A84D54199E8B1DDE85BA709B2DC" 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_3D8BE5694467D2227902E85BA70914D5" 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_192F1A84D54199E8B1DDE85BA709B2DC" xlink:to="loc_srt_RestatementAxis_3D8BE5694467D2227902E85BA70914D5" 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_A356A2AC78E07B1DCA52E85BA709F367" 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_3D8BE5694467D2227902E85BA70914D5" xlink:to="loc_srt_RestatementDomain_A356A2AC78E07B1DCA52E85BA709F367" 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_CE3DB96587E5ECA59101E85BA709BED6" 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_A356A2AC78E07B1DCA52E85BA709F367" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_CE3DB96587E5ECA59101E85BA709BED6" 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_E759B65B2ECFBCF0F5E7E85BA70920EA" 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_A356A2AC78E07B1DCA52E85BA709F367" xlink:to="loc_srt_RestatementAdjustmentMember_E759B65B2ECFBCF0F5E7E85BA70920EA" 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_A96413A61096EE09576EE85BA70905D0" 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_192F1A84D54199E8B1DDE85BA709B2DC" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A96413A61096EE09576EE85BA70905D0" 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_CB67C60127E3259A319FE85BA7091177" 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_A96413A61096EE09576EE85BA70905D0" xlink:to="loc_us-gaap_TypeOfAdoptionMember_CB67C60127E3259A319FE85BA7091177" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5" 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_CB67C60127E3259A319FE85BA7091177" xlink:to="loc_us-gaap_AccountingStandardsUpdate201409Member_813BAA0B8239B62AA83FE85BA70CF3C5" 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_A66335693F5E3AC8E813E85BA711D701" 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_192F1A84D54199E8B1DDE85BA709B2DC" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_A66335693F5E3AC8E813E85BA711D701" 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_399E34FC154CFCDC9E20E85BA71133A4" 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_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_399E34FC154CFCDC9E20E85BA71133A4" 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_5D48252883A334EA7371E85BA711DC63" 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_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_5D48252883A334EA7371E85BA711DC63" 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_66F0BBF508847871A9BFE85BA7116F1B" 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_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_GrossProfit_66F0BBF508847871A9BFE85BA7116F1B" 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_98EF133C46F1F35C4ECBE85BA71106AB" 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_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_OperatingIncomeLoss_98EF133C46F1F35C4ECBE85BA71106AB" 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_469906173A5F479B5A97E85BA711A779" 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_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_469906173A5F479B5A97E85BA711A779" 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_49F398CED6360CD7B8EFE85BA711722E" 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_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_49F398CED6360CD7B8EFE85BA711722E" 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_DD683949B3D7F8C9F49AE85BA7118DE0" 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_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_NetIncomeLoss_DD683949B3D7F8C9F49AE85BA7118DE0" 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_0F80988200B05E394D28E85BA711E866" 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_A66335693F5E3AC8E813E85BA711D701" xlink:to="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866" 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_BBB25B4B57D596B548B5E85BA713729B" 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_0F80988200B05E394D28E85BA711E866" xlink:to="loc_us-gaap_EarningsPerShareBasic_BBB25B4B57D596B548B5E85BA713729B" 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_E295D0D0C7D0B820B3D5E85BA7139585" 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_EarningsPerShareBasicAndDilutedAbstract_0F80988200B05E394D28E85BA711E866" xlink:to="loc_us-gaap_EarningsPerShareDiluted_E295D0D0C7D0B820B3D5E85BA7139585" 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_C924032F4E78CDFA4C0A9647C21014B2" 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_02BE8D2F3AC29F72D7ED9647C2100F1B" 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_C924032F4E78CDFA4C0A9647C21014B2" xlink:to="loc_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_02BE8D2F3AC29F72D7ED9647C2100F1B" 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_D0EF576B747FDBB01CBF9647C2101CDB" 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_C924032F4E78CDFA4C0A9647C21014B2" xlink:to="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_D0EF576B747FDBB01CBF9647C2101CDB" 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_C17032240A10DC6613DC96490096BC26" 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_C924032F4E78CDFA4C0A9647C21014B2" xlink:to="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_C17032240A10DC6613DC96490096BC26" 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_9D9C9AB52E2BF5F910F7FA5C2350368E" 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_0528B51798E5262733E4FA5C235071F8" 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_9D9C9AB52E2BF5F910F7FA5C2350368E" xlink:to="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_0528B51798E5262733E4FA5C235071F8" 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_C1104285ABEBA35A9EB9E44668B4DF9A" 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_E08810DBD86FC682D73FE44668B4FAFD" 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_C1104285ABEBA35A9EB9E44668B4DF9A" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_E08810DBD86FC682D73FE44668B4FAFD" 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_D21CBEF75B4BEEEA304BE44668B5929D" 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_E08810DBD86FC682D73FE44668B4FAFD" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_D21CBEF75B4BEEEA304BE44668B5929D" 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_933DE7F34622F40053EBE44668B5DAC1" 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_D21CBEF75B4BEEEA304BE44668B5929D" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_933DE7F34622F40053EBE44668B5DAC1" 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_26E67E7BB4F94B057B1EE44668B5062F" 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_933DE7F34622F40053EBE44668B5DAC1" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_26E67E7BB4F94B057B1EE44668B5062F" 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_4D6E3562B756BF50AB72E44668B56809" 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_933DE7F34622F40053EBE44668B5DAC1" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_4D6E3562B756BF50AB72E44668B56809" 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_A15C84144502626821EEE44668B69883" 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_E08810DBD86FC682D73FE44668B4FAFD" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_A15C84144502626821EEE44668B69883" 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_4B370D360BB35F5CCAC4E44668B6A498" 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_A15C84144502626821EEE44668B69883" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_4B370D360BB35F5CCAC4E44668B6A498" 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_13B1246EFDEDC822C9E9E44668B650C8" 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_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_13B1246EFDEDC822C9E9E44668B650C8" 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_0CF81DDBFFC1970FD433E44668B6CF4B" 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_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_0CF81DDBFFC1970FD433E44668B6CF4B" 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_5F726B7B3323EF70EE83E44668B754C7" 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_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_5F726B7B3323EF70EE83E44668B754C7" 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_817F6ADA1D04A0CEBD0BE44668B7D7D5" 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_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_817F6ADA1D04A0CEBD0BE44668B7D7D5" 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_5593F65F349C03919C12E44668B745B9" 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_4B370D360BB35F5CCAC4E44668B6A498" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_5593F65F349C03919C12E44668B745B9" 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_CCDFED45B97E943C0857FA5C210B85CA" 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_D0A34539C9A3722BC790FA5C210CDD73" 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_CCDFED45B97E943C0857FA5C210B85CA" xlink:to="loc_us-gaap_SegmentReportingDisclosureTextBlock_D0A34539C9A3722BC790FA5C210CDD73" 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_4F31689781EE0467D852E3837CA9D798" 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_36878E2C27596FA80A35E3837CA96CAF" 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_4F31689781EE0467D852E3837CA9D798" xlink:to="loc_us-gaap_ConcentrationRiskTable_36878E2C27596FA80A35E3837CA96CAF" 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_CFBF3D30E29EDAC21DE0E3837CAA41F6" 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_36878E2C27596FA80A35E3837CA96CAF" xlink:to="loc_srt_StatementGeographicalAxis_CFBF3D30E29EDAC21DE0E3837CAA41F6" 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_054F595DEADE58D96D9EE3837CAAFBF4" 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_CFBF3D30E29EDAC21DE0E3837CAA41F6" xlink:to="loc_srt_SegmentGeographicalDomain_054F595DEADE58D96D9EE3837CAAFBF4" 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_31C02C9063E2ED505827E3837CAAEB80" 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_054F595DEADE58D96D9EE3837CAAFBF4" xlink:to="loc_srt_EuropeMember_31C02C9063E2ED505827E3837CAAEB80" 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_2765C5F1D69546D38031E3837CAB2FB9" 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_36878E2C27596FA80A35E3837CA96CAF" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_2765C5F1D69546D38031E3837CAB2FB9" 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_ADE52987F2386244E1EFE3837CAB1755" 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_2765C5F1D69546D38031E3837CAB2FB9" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_ADE52987F2386244E1EFE3837CAB1755" 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_4AAC253D6D95721849B6E3837CAB4142" 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_ADE52987F2386244E1EFE3837CAB1755" xlink:to="loc_us-gaap_SalesRevenueNetMember_4AAC253D6D95721849B6E3837CAB4142" 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_1AD937F4649D233F0545E3D0B928A387" 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_ADE52987F2386244E1EFE3837CAB1755" xlink:to="loc_us-gaap_AccountsReceivableMember_1AD937F4649D233F0545E3D0B928A387" 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_8A7F82ABCA7D2039CE15E3837CAC5599" 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_36878E2C27596FA80A35E3837CA96CAF" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_8A7F82ABCA7D2039CE15E3837CAC5599" 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_17BFAFA122A6FA11D4E7E3837CAC4433" 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_8A7F82ABCA7D2039CE15E3837CAC5599" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_17BFAFA122A6FA11D4E7E3837CAC4433" 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_572697A88B46BBD776AFE3837CACD641" 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_17BFAFA122A6FA11D4E7E3837CAC4433" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_572697A88B46BBD776AFE3837CACD641" 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_B872747A2A6A576DCDE0E3837CACE94E" 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_36878E2C27596FA80A35E3837CA96CAF" xlink:to="loc_us-gaap_ConcentrationRiskLineItems_B872747A2A6A576DCDE0E3837CACE94E" 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_C5E02612384035CD6EE3E3837CADDFCB" 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_B872747A2A6A576DCDE0E3837CACE94E" xlink:to="loc_us-gaap_NumberOfReportableSegments_C5E02612384035CD6EE3E3837CADDFCB" 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_BA9396513FB1B57852CFE3837CADFE23" 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_B872747A2A6A576DCDE0E3837CACE94E" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_BA9396513FB1B57852CFE3837CADFE23" 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_2914EEDD0614594977FEE3837C9CBFFF" 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_CA6C87029207B9D536CAE3837C9CCBAB" 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_2914EEDD0614594977FEE3837C9CBFFF" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_CA6C87029207B9D536CAE3837C9CCBAB" 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_88181160811A09214D30E3837C9C2832" 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_CA6C87029207B9D536CAE3837C9CCBAB" xlink:to="loc_srt_StatementGeographicalAxis_88181160811A09214D30E3837C9C2832" 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_90DF1F751A80160E6F8CE3837C9C65AE" 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_88181160811A09214D30E3837C9C2832" xlink:to="loc_srt_SegmentGeographicalDomain_90DF1F751A80160E6F8CE3837C9C65AE" 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_162C569630550C117710E3837C9DA5D0" 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_90DF1F751A80160E6F8CE3837C9C65AE" xlink:to="loc_country_US_162C569630550C117710E3837C9DA5D0" 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_C97049A0AED35624FB8EE3837C9D4991" 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_90DF1F751A80160E6F8CE3837C9C65AE" xlink:to="loc_srt_EuropeMember_C97049A0AED35624FB8EE3837C9D4991" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" 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_90DF1F751A80160E6F8CE3837C9C65AE" xlink:to="loc_cgnx_GreaterChinaMember_EBB130ED13CAE0A1D31BE3837C9DCC2A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OtherGeographicAreaMember" xlink:label="loc_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" 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_90DF1F751A80160E6F8CE3837C9C65AE" xlink:to="loc_cgnx_OtherGeographicAreaMember_5935A011F41263470630E3837C9D5C0C" 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_6BE120AFA90433311805E3837C9D230A" 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_CA6C87029207B9D536CAE3837C9CCBAB" xlink:to="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_6BE120AFA90433311805E3837C9D230A" 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_266569E54787556D0820E3837C9E65F1" 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_6BE120AFA90433311805E3837C9D230A" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_266569E54787556D0820E3837C9E65F1" 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_5BB1A55A3CC3733BD7B2E3837C9E920B" 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_6BE120AFA90433311805E3837C9D230A" xlink:to="loc_us-gaap_NoncurrentAssets_5BB1A55A3CC3733BD7B2E3837C9E920B" 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_ABDECFD438DE281D3BF7FA5C22B451DE" 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_62C5E5DFB630FD2336A2FA5C22B40746" 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_ABDECFD438DE281D3BF7FA5C22B451DE" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_62C5E5DFB630FD2336A2FA5C22B40746" 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_EF7AC1C533DF078990A0E772DA923E33" 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_121954B7B53D94BBAB35E773040235BB" 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_EF7AC1C533DF078990A0E772DA923E33" xlink:to="loc_us-gaap_QuarterlyFinancialInformationTextBlock_121954B7B53D94BBAB35E773040235BB" 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_563E97EB1089A47DB3BAE834A35807BF" 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_ACFE03A8C0459DC345ABE834A359DF26" 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_563E97EB1089A47DB3BAE834A35807BF" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ACFE03A8C0459DC345ABE834A359DF26" 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_EA22BB198E857910BDEBE834A35AD6F2" 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_563E97EB1089A47DB3BAE834A35807BF" xlink:to="loc_us-gaap_GrossProfit_EA22BB198E857910BDEBE834A35AD6F2" 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_DFF381E16998A8459F00E834A35B2DEF" 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_563E97EB1089A47DB3BAE834A35807BF" xlink:to="loc_us-gaap_OperatingIncomeLoss_DFF381E16998A8459F00E834A35B2DEF" 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_7FD1F7DBFB30519D642CE834A35B160A" 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_563E97EB1089A47DB3BAE834A35807BF" xlink:to="loc_us-gaap_NetIncomeLoss_7FD1F7DBFB30519D642CE834A35B160A" 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_6FAC2F54C563B874070CE834A3637ECA" 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_563E97EB1089A47DB3BAE834A35807BF" xlink:to="loc_us-gaap_EarningsPerShareBasic_6FAC2F54C563B874070CE834A3637ECA" 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_8795FF347A3CD32EE3B0E834A363246D" 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_563E97EB1089A47DB3BAE834A35807BF" xlink:to="loc_us-gaap_EarningsPerShareDiluted_8795FF347A3CD32EE3B0E834A363246D" 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_E562E929FAD635E04A1FE834A3632FF6" 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_563E97EB1089A47DB3BAE834A35807BF" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_E562E929FAD635E04A1FE834A3632FF6" 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_457A87B4912B86CEB3B3E834A36439D1" 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_563E97EB1089A47DB3BAE834A35807BF" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_457A87B4912B86CEB3B3E834A36439D1" 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_673A6AE525D085F91527E854C84C7712" 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_46018249B5A19BD2E4D1E854C84CB97A" 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_673A6AE525D085F91527E854C84C7712" xlink:to="loc_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_46018249B5A19BD2E4D1E854C84CB97A" 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_FDC5A3B0C6E989F35A63FA5C217282B9" 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_DAAE97EE3A946B0503B4FA5C2172FE19" 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_FDC5A3B0C6E989F35A63FA5C217282B9" xlink:to="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_DAAE97EE3A946B0503B4FA5C2172FE19" 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_7AB66A2E87BB11550781E3837E035A1A" 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_9AB1C444DE0079CA4385E3837E037462" 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_7AB66A2E87BB11550781E3837E035A1A" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_9AB1C444DE0079CA4385E3837E037462" 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_CB63821325FC5CA08915E3837E03FD6B" 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_9AB1C444DE0079CA4385E3837E037462" xlink:to="loc_us-gaap_StatementClassOfStockAxis_CB63821325FC5CA08915E3837E03FD6B" 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_0FDE6F73994E1FD663DDE3837E03E382" 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_CB63821325FC5CA08915E3837E03FD6B" xlink:to="loc_us-gaap_ClassOfStockDomain_0FDE6F73994E1FD663DDE3837E03E382" 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_A0C3082D809EA76C28D4E3837E04D37B" 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_0FDE6F73994E1FD663DDE3837E03E382" xlink:to="loc_us-gaap_CommonStockMember_A0C3082D809EA76C28D4E3837E04D37B" 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_19BAD02892E246E44CE0E3837E04F5C3" 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_9AB1C444DE0079CA4385E3837E037462" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_19BAD02892E246E44CE0E3837E04F5C3" 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_C5B618A9C322C3C8C2BDE3837E04B263" 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_19BAD02892E246E44CE0E3837E04F5C3" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_C5B618A9C322C3C8C2BDE3837E04B263" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RepurchaseProgram2014Member" xlink:label="loc_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" 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_C5B618A9C322C3C8C2BDE3837E04B263" xlink:to="loc_cgnx_RepurchaseProgram2014Member_59DD26E25259708CDBBFE3837E0415A2" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RepurchaseProgramTwentyFifteenMember" xlink:label="loc_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" 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_C5B618A9C322C3C8C2BDE3837E04B263" xlink:to="loc_cgnx_RepurchaseProgramTwentyFifteenMember_B30298AFC53A0A99779DE3837E051B67" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RepurchaseProgramNovember2015Member" xlink:label="loc_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" 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_C5B618A9C322C3C8C2BDE3837E04B263" xlink:to="loc_cgnx_RepurchaseProgramNovember2015Member_84E69E2D9CCAA820B566E3837E0562E4" 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_BF14806C97F3D2201A62E3837E059D42" 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_9AB1C444DE0079CA4385E3837E037462" xlink:to="loc_us-gaap_ClassOfStockLineItems_BF14806C97F3D2201A62E3837E059D42" 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_F1EF17F0D0292A87F898E3837E053B0A" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_F1EF17F0D0292A87F898E3837E053B0A" 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_F7E7A029480EAC8DD6B0E3837E06CAB6" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_F7E7A029480EAC8DD6B0E3837E06CAB6" 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_9C20E584C5CD8DE4F233E3837E06C0EC" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_9C20E584C5CD8DE4F233E3837E06C0EC" 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_0469A208F9937BC3737DE3837E065E22" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_0469A208F9937BC3737DE3837E065E22" 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_E7F56B17BAEB99D995A6E3837E065351" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_E7F56B17BAEB99D995A6E3837E065351" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_3DE0711CB83E80C60FEFE3837E07D528" 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_B91C8F912FF3FE249AA5E3837E078FE3" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_B91C8F912FF3FE249AA5E3837E078FE3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Totalsharesrepurchased" xlink:label="loc_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_cgnx_Totalsharesrepurchased_D3DC09E66249752DAE18E3837E07D4D9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Repurchasedsharestotalcost" xlink:label="loc_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_cgnx_Repurchasedsharestotalcost_9098084D91DE1C7362DEE3837E0723EF" 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_ADCF665EFCB528EAA5BCE3837E07168B" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_ADCF665EFCB528EAA5BCE3837E07168B" 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_295827A6D54042601D82E3837E07430F" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_295827A6D54042601D82E3837E07430F" 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_CC4C8EAFAAE1B7B5ED25E3837E08DE4F" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_CommonStockDividendsPerShareDeclared_CC4C8EAFAAE1B7B5ED25E3837E08DE4F" 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_FBC2CA88330EED95B24CE3837E08765C" 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_BF14806C97F3D2201A62E3837E059D42" xlink:to="loc_us-gaap_PaymentsOfDividends_FBC2CA88330EED95B24CE3837E08765C" 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_33ADF8D191C04DBB52AFFA5C21828C4A" 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_C399E7D5CFC6BDDEF951FA5C2182330D" 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_33ADF8D191C04DBB52AFFA5C21828C4A" xlink:to="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_C399E7D5CFC6BDDEF951FA5C2182330D" 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_E0FFA4693147A881E968E70868311F57" 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_2F1FE1A99C15F818426EE708683189E0" 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_E0FFA4693147A881E968E70868311F57" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2F1FE1A99C15F818426EE708683189E0" 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_3640CAC4B1D0C4D8D92DE7086832F60F" 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_2F1FE1A99C15F818426EE708683189E0" xlink:to="loc_srt_RangeAxis_3640CAC4B1D0C4D8D92DE7086832F60F" 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_9B79993BF6478F398041E708683297F8" 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_3640CAC4B1D0C4D8D92DE7086832F60F" xlink:to="loc_srt_RangeMember_9B79993BF6478F398041E708683297F8" 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_954E5B6F4C4630754119E708683242D7" 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_9B79993BF6478F398041E708683297F8" xlink:to="loc_srt_MinimumMember_954E5B6F4C4630754119E708683242D7" 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_E1F377A2CDB989A0FAB9E7086833D483" 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_9B79993BF6478F398041E708683297F8" xlink:to="loc_srt_MaximumMember_E1F377A2CDB989A0FAB9E7086833D483" 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_ED346E036FC05CDB93D1E7086833A089" 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_2F1FE1A99C15F818426EE708683189E0" xlink:to="loc_us-gaap_AwardTypeAxis_ED346E036FC05CDB93D1E7086833A089" 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_94E06C6837AFFFFC438AE7086833ADE6" 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_ED346E036FC05CDB93D1E7086833A089" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_94E06C6837AFFFFC438AE7086833ADE6" 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_2129D33F2C32C99CF8C7E70868333CD8" 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_94E06C6837AFFFFC438AE7086833ADE6" xlink:to="loc_us-gaap_EmployeeStockOptionMember_2129D33F2C32C99CF8C7E70868333CD8" 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_D00D8F80668D26DDC488E7086833CFD5" 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_94E06C6837AFFFFC438AE7086833ADE6" xlink:to="loc_us-gaap_PerformanceSharesMember_D00D8F80668D26DDC488E7086833CFD5" 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_D8A2FC2FD03CB4D440E3E70868347361" 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_2F1FE1A99C15F818426EE708683189E0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_D8A2FC2FD03CB4D440E3E70868347361" 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_DBA08169676B742DA904E708683491D8" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_DBA08169676B742DA904E708683491D8" 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_2B060CE5F280D07EB3FAE70868345BAC" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_2B060CE5F280D07EB3FAE70868345BAC" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_C697EEB16D53FCCC7290E7086834560F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_264F4E96E1A5EC4E4E64E70868344CE6" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_12773A846F4B25EDAC2BE7086835E0CB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_A8F66694FE52E8D779FBE7086835F235" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:label="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_7F831F4EB0970F1ECB81E70868354BB2" 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_749C4C255E38A265F539E7086835A3B6" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_749C4C255E38A265F539E7086835A3B6" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_78BFF63DE2295AAB8208E7086835A649" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_AB85B57B9399ECC68549E70868356BFC" 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_34452323AEA458E40FB2E7086836DC7C" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_34452323AEA458E40FB2E7086836DC7C" 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_2FFE6BE6578AB91FFA03E7086836CFC4" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2FFE6BE6578AB91FFA03E7086836CFC4" 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_595916F98EF2EFD74A25E7086836009C" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_595916F98EF2EFD74A25E7086836009C" 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_4700D1442A9987633190E708683B55CE" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_4700D1442A9987633190E708683B55CE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" 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_D8A2FC2FD03CB4D440E3E70868347361" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B90302AB9E3BC7A2FFBAE708683B03AC" 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_8A22A139E9AE11BF9035E44669D68111" 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_76FCE38F14C8614C4058E44669D65430" 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_8A22A139E9AE11BF9035E44669D68111" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_76FCE38F14C8614C4058E44669D65430" 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_FF2F4EDC4F6994B73AD9E44669D683C7" 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_8A22A139E9AE11BF9035E44669D68111" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FF2F4EDC4F6994B73AD9E44669D683C7" 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_7A03D27703E90734B7A7E44669D62346" 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_FF2F4EDC4F6994B73AD9E44669D683C7" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_7A03D27703E90734B7A7E44669D62346" 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_AA6A3D531B838387596DE44669D70A13" 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_7A03D27703E90734B7A7E44669D62346" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_AA6A3D531B838387596DE44669D70A13" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ProductCostOfRevenueMember" xlink:label="loc_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" 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_AA6A3D531B838387596DE44669D70A13" xlink:to="loc_cgnx_ProductCostOfRevenueMember_F023E43303176DB5B122E44669D743FE" 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_C2A86611C35A6AF5D5A7E44669D7BD44" 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_AA6A3D531B838387596DE44669D70A13" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_C2A86611C35A6AF5D5A7E44669D7BD44" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SellingGeneralAndAdministrativeMember" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" 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_AA6A3D531B838387596DE44669D70A13" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_B4BBCE93DC74797B7A2AE44669D7A379" 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_8BB6B817CD99E8EF9656E44669D8C55D" 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_FF2F4EDC4F6994B73AD9E44669D683C7" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8BB6B817CD99E8EF9656E44669D8C55D" 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_D4FC3989E00F55C392DDE44669D8196B" 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_8BB6B817CD99E8EF9656E44669D8C55D" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_D4FC3989E00F55C392DDE44669D8196B" 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_1D9741B3EF20E078DA5EE44669D827F0" 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_8BB6B817CD99E8EF9656E44669D8C55D" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_1D9741B3EF20E078DA5EE44669D827F0" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B293DCE7639A25EF695FE44669D8A7EF" 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_8BB6B817CD99E8EF9656E44669D8C55D" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_B293DCE7639A25EF695FE44669D8A7EF" 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_1D5B57A9DBCBD2BD418BE46A231FC71B" 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_B310B215C09732BB5498E469F4A611B2" 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_1D5B57A9DBCBD2BD418BE46A231FC71B" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_B310B215C09732BB5498E469F4A611B2" 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_309D6E957729AFCFB9C3E469F4A6E837" 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_B310B215C09732BB5498E469F4A611B2" xlink:to="loc_us-gaap_AwardTypeAxis_309D6E957729AFCFB9C3E469F4A6E837" 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_6323D9D5F3D1BA2C6734E469F4A72AC1" 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_309D6E957729AFCFB9C3E469F4A6E837" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_6323D9D5F3D1BA2C6734E469F4A72AC1" 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_166E958BB57E4C982229E469F4A7DC5B" 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_6323D9D5F3D1BA2C6734E469F4A72AC1" xlink:to="loc_us-gaap_RestrictedStockMember_166E958BB57E4C982229E469F4A7DC5B" 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_592123813CD47DC9FE7EE469F4A768AB" 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_B310B215C09732BB5498E469F4A611B2" xlink:to="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_592123813CD47DC9FE7EE469F4A768AB" 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_CA3D1E5564DA7B678E8BE469F4A730C4" 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_592123813CD47DC9FE7EE469F4A768AB" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_CA3D1E5564DA7B678E8BE469F4A730C4" 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_46A3C9F5072DFF31C4EFE469F4A85633" 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_CA3D1E5564DA7B678E8BE469F4A730C4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_46A3C9F5072DFF31C4EFE469F4A85633" 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_BA9F9A9BC85B0BB5B1A3E469F4A81012" 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_CA3D1E5564DA7B678E8BE469F4A730C4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_BA9F9A9BC85B0BB5B1A3E469F4A81012" 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_A214956C5A5EE00E1134E469F4A8C479" 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_CA3D1E5564DA7B678E8BE469F4A730C4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_A214956C5A5EE00E1134E469F4A8C479" 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_A599EB20991D9A055AD7E469F4A81E3E" 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_CA3D1E5564DA7B678E8BE469F4A730C4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_A599EB20991D9A055AD7E469F4A81E3E" 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_48E15140AC1B19C633F2E469F4A8C967" 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_CA3D1E5564DA7B678E8BE469F4A730C4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_48E15140AC1B19C633F2E469F4A8C967" 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_9CAD7ACD9CEB9858BC8DE469F4A8A109" 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_592123813CD47DC9FE7EE469F4A768AB" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_9CAD7ACD9CEB9858BC8DE469F4A8A109" 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_208E57F5707C727342B0E469F4A9606D" 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_9CAD7ACD9CEB9858BC8DE469F4A8A109" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_208E57F5707C727342B0E469F4A9606D" 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_09BB87738DA6905E67DDE469F4A93FE8" 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_9CAD7ACD9CEB9858BC8DE469F4A8A109" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_09BB87738DA6905E67DDE469F4A93FE8" 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_25BB7585EDF67FED024CE469F4A9C6E3" 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_9CAD7ACD9CEB9858BC8DE469F4A8A109" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_25BB7585EDF67FED024CE469F4A9C6E3" 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_E07A58EAFFA6D7395D38E469F4A99BD9" 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_9CAD7ACD9CEB9858BC8DE469F4A8A109" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_E07A58EAFFA6D7395D38E469F4A99BD9" 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_097EC1F1FBD4A19856EEE469F4A9BF61" 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_9CAD7ACD9CEB9858BC8DE469F4A8A109" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_097EC1F1FBD4A19856EEE469F4A9BF61" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_D101F47CAA45DC8FF7A3E469F4A9FF6A" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_592123813CD47DC9FE7EE469F4A768AB" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_D101F47CAA45DC8FF7A3E469F4A9FF6A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_DC41D3466201E19506C2E469F4A94F24" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_592123813CD47DC9FE7EE469F4A768AB" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested_DC41D3466201E19506C2E469F4A94F24" 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_834DCB0889008E850241E44669EE78B6" 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_BCC82E72B44DDEBC77AEE45F92C7130F" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_BCC82E72B44DDEBC77AEE45F92C7130F" 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_C8A465485484AE8960F8E44669EE0661" 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_BCC82E72B44DDEBC77AEE45F92C7130F" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_C8A465485484AE8960F8E44669EE0661" 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_DA6CF4E25E48D40EA6F5E44669EE5281" 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_BCC82E72B44DDEBC77AEE45F92C7130F" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_DA6CF4E25E48D40EA6F5E44669EE5281" 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_C6858F68EFEADA04B162E44669EE8D48" 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_BCC82E72B44DDEBC77AEE45F92C7130F" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C6858F68EFEADA04B162E44669EE8D48" 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_B3F9B3B89B0718E1D9E8E44669EE4FEC" 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_BCC82E72B44DDEBC77AEE45F92C7130F" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_B3F9B3B89B0718E1D9E8E44669EE4FEC" 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_279D9BB29B226AE21836E44669EF19DC" 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_BCC82E72B44DDEBC77AEE45F92C7130F" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_279D9BB29B226AE21836E44669EF19DC" 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_75EE5C2F860A54BF80B5E460F224C929" xlink:type="locator" />
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_75EE5C2F860A54BF80B5E460F224C929" 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_CC5869CB003D8CA70342E460F2240534" 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_75EE5C2F860A54BF80B5E460F224C929" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_CC5869CB003D8CA70342E460F2240534" 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_3EE2C8272B2EDC41AB5EE460F2252E51" 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_75EE5C2F860A54BF80B5E460F224C929" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_3EE2C8272B2EDC41AB5EE460F2252E51" 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_648ECA90AEA46990FF3AE460F225F6A4" 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_75EE5C2F860A54BF80B5E460F224C929" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_648ECA90AEA46990FF3AE460F225F6A4" 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_98BCB93998C11620B3DBE460F225727F" 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_75EE5C2F860A54BF80B5E460F224C929" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_98BCB93998C11620B3DBE460F225727F" 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_E9AA61F5A810CB32B775E460F2257618" 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_75EE5C2F860A54BF80B5E460F224C929" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_E9AA61F5A810CB32B775E460F2257618" 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_4FF123451D262A450312E44669EF2D67" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_4FF123451D262A450312E44669EF2D67" 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_B6A11DA3EBFF0FC1B5A0E44669EF1257" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_B6A11DA3EBFF0FC1B5A0E44669EF1257" 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_172AD2DFD1C91CA9E9E9E44669F00B11" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_172AD2DFD1C91CA9E9E9E44669F00B11" 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_64F72ECCB50262F714FBE44669F0D46B" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_64F72ECCB50262F714FBE44669F0D46B" 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_281E35283819D0D533DFE44669F08500" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_281E35283819D0D533DFE44669F08500" 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_EC600E8F2AA14B1448D5E44669F05A81" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_EC600E8F2AA14B1448D5E44669F05A81" 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_CFA1D4D3E3EC34FF53D2E44669F14743" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_CFA1D4D3E3EC34FF53D2E44669F14743" 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_813D723C4E8D84E17DEFE44669F1828C" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_813D723C4E8D84E17DEFE44669F1828C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_66CEAC4DE42FC9268387E44669F16308" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_66CEAC4DE42FC9268387E44669F16308" 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_3E787339083A5656A01AE44669F15545" 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_834DCB0889008E850241E44669EE78B6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_3E787339083A5656A01AE44669F15545" 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_00A1DC2A24D8B938A135FA5C20D4902B" 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_383A78DAAA1F26CD6A54FA5C20D40697" 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_00A1DC2A24D8B938A135FA5C20D4902B" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_383A78DAAA1F26CD6A54FA5C20D40697" 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_0313D3B1795AC280FFC0FA5C20D5A49C" 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_383A78DAAA1F26CD6A54FA5C20D40697" xlink:to="loc_us-gaap_AwardTypeAxis_0313D3B1795AC280FFC0FA5C20D5A49C" 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_8677F132099E2E72F645FA5C20D527E7" 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_0313D3B1795AC280FFC0FA5C20D5A49C" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_8677F132099E2E72F645FA5C20D527E7" 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_86FA81C214BC85D8C31DFA5C20D5C742" 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_8677F132099E2E72F645FA5C20D527E7" xlink:to="loc_us-gaap_EmployeeStockOptionMember_86FA81C214BC85D8C31DFA5C20D5C742" 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_58B13C050F05B7D61513FA5C20D6F170" 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_383A78DAAA1F26CD6A54FA5C20D40697" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_58B13C050F05B7D61513FA5C20D6F170" 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_5DD356CAB88CAD74AD54FA5C20D6587C" 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_58B13C050F05B7D61513FA5C20D6F170" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_5DD356CAB88CAD74AD54FA5C20D6587C" 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_4AA278AA420C32154294FA5C20D63777" 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_58B13C050F05B7D61513FA5C20D6F170" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_4AA278AA420C32154294FA5C20D63777" 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_5110BD5E31D5430F0345FA5C20D62A4B" 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_58B13C050F05B7D61513FA5C20D6F170" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_5110BD5E31D5430F0345FA5C20D62A4B" 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_BBA4ACA5D2290E936656FA5C20D7254F" 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_58B13C050F05B7D61513FA5C20D6F170" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_BBA4ACA5D2290E936656FA5C20D7254F" 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_DD674D3EE5A14AC2DCFEFA5C209A4000" 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_A3B4492BF6A4BDAB0E96FA5C209A2109" 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_DD674D3EE5A14AC2DCFEFA5C209A4000" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_A3B4492BF6A4BDAB0E96FA5C209A2109" 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_39A9365E634B38EB4786FA5C209B0F06" 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_DD674D3EE5A14AC2DCFEFA5C209A4000" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_39A9365E634B38EB4786FA5C209B0F06" 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_060B8FA5154ED17138B9FA5C209B2833" 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_DD674D3EE5A14AC2DCFEFA5C209A4000" xlink:to="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_060B8FA5154ED17138B9FA5C209B2833" 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_999AC705BDB7D4DFF684FA5C209B61B2" 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_DD674D3EE5A14AC2DCFEFA5C209A4000" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_999AC705BDB7D4DFF684FA5C209B61B2" 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_9695305E892D94032108E3837B45A746" 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_82A78EB2F21657ECDB53E3837B4572F8" 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_9695305E892D94032108E3837B45A746" xlink:to="loc_us-gaap_SubsequentEventsTextBlock_82A78EB2F21657ECDB53E3837B4572F8" 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_EF76CA0D100739E672A5E3837B3BBF21" 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_49DE898B0F9663F0BF3CE3837B3B7F4D" 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_EF76CA0D100739E672A5E3837B3BBF21" xlink:to="loc_us-gaap_SubsequentEventTable_49DE898B0F9663F0BF3CE3837B3B7F4D" 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_EF8EFDC96784CA3CE898E3837B3BB70F" 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_49DE898B0F9663F0BF3CE3837B3B7F4D" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_EF8EFDC96784CA3CE898E3837B3BB70F" 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_C0B187A76024540E4671E3837B3C74D2" 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_EF8EFDC96784CA3CE898E3837B3BB70F" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_C0B187A76024540E4671E3837B3C74D2" 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_08D887031C7E68C74742E3837B3C314B" 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_C0B187A76024540E4671E3837B3C74D2" xlink:to="loc_us-gaap_SubsequentEventMember_08D887031C7E68C74742E3837B3C314B" 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_161155272B109F3D9C42E3837B3C450B" 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_49DE898B0F9663F0BF3CE3837B3B7F4D" xlink:to="loc_us-gaap_SubsequentEventLineItems_161155272B109F3D9C42E3837B3C450B" 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_16C5D9ED8F2DDCB6B132E3837B3DB400" 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_161155272B109F3D9C42E3837B3C450B" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_16C5D9ED8F2DDCB6B132E3837B3DB400" 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_AC782C6F0FD497701A84E3837B3D4175" 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_161155272B109F3D9C42E3837B3C450B" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_AC782C6F0FD497701A84E3837B3D4175" 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_E9FBA4AD101977401272E3837B3D6EF5" 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_161155272B109F3D9C42E3837B3C450B" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_E9FBA4AD101977401272E3837B3D6EF5" 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_398722868C6FD3272F1CFA5C2516B156" 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_EC95AD52A9E23EEB107FFA5C25176FAE" 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_398722868C6FD3272F1CFA5C2516B156" xlink:to="loc_us-gaap_SignificantAccountingPoliciesTextBlock_EC95AD52A9E23EEB107FFA5C25176FAE" 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_7ECFEB43C341A7406201E38380C248E4" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_1013E4C1B9A8D4F599AAE38380C3AB95" 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_7ECFEB43C341A7406201E38380C248E4" xlink:to="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_1013E4C1B9A8D4F599AAE38380C3AB95" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_42142AE67F2C0BFB24B7E38380C36D27" 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_7ECFEB43C341A7406201E38380C248E4" xlink:to="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_42142AE67F2C0BFB24B7E38380C36D27" 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_25095B46238AF4B651A2E38380C3075B" 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_7ECFEB43C341A7406201E38380C248E4" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_25095B46238AF4B651A2E38380C3075B" 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_21869EEF0CD98462A1ABE38380C3F5CF" 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_25095B46238AF4B651A2E38380C3075B" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_21869EEF0CD98462A1ABE38380C3F5CF" 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_C9E5ACE899410EF13F82E38380C48A21" 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_21869EEF0CD98462A1ABE38380C3F5CF" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_C9E5ACE899410EF13F82E38380C48A21" 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_135BF75EE67E91FDEF5FE38380C4AAE8" 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_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_us-gaap_BuildingMember_135BF75EE67E91FDEF5FE38380C4AAE8" 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_2A62B4A057FB7F172DE0E38380C4CFFA" 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_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_us-gaap_BuildingImprovementsMember_2A62B4A057FB7F172DE0E38380C4CFFA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ComputerHardwareAndSoftwareMember" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" 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_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_E7FC6CE06AFAA78377C5E38380C4225D" 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_FDCC5F33C75C9B318068E38380C50138" 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_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_us-gaap_EquipmentMember_FDCC5F33C75C9B318068E38380C50138" 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_2B5A05A51F80CB026004E38380C59509" 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_C9E5ACE899410EF13F82E38380C48A21" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_2B5A05A51F80CB026004E38380C59509" 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_D56A001F154CEF817244E38380C55417" 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_25095B46238AF4B651A2E38380C3075B" xlink:to="loc_srt_RangeAxis_D56A001F154CEF817244E38380C55417" 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_E15E10452088E960C9E7E38380C581B6" 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_D56A001F154CEF817244E38380C55417" xlink:to="loc_srt_RangeMember_E15E10452088E960C9E7E38380C581B6" 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_71E48602A13FBE8F5C37E38380C5F46A" 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_E15E10452088E960C9E7E38380C581B6" xlink:to="loc_srt_MinimumMember_71E48602A13FBE8F5C37E38380C5F46A" 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_689621FA8CF183DA1E57E38380C6DB50" 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_E15E10452088E960C9E7E38380C581B6" xlink:to="loc_srt_MaximumMember_689621FA8CF183DA1E57E38380C6DB50" 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_37E2EDEA47A6311AB3BAE38380C659EA" 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_25095B46238AF4B651A2E38380C3075B" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_37E2EDEA47A6311AB3BAE38380C659EA" 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_9C605EA54327CA8D96DAE38380C6BC5E" 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_37E2EDEA47A6311AB3BAE38380C659EA" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_9C605EA54327CA8D96DAE38380C6BC5E" 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_934601D403ECEF1A00C5FA5C22DD1A12" 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_C0A81ECE839BC0CC77C5FA5C22DEB4AF" 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_934601D403ECEF1A00C5FA5C22DD1A12" xlink:to="loc_us-gaap_AdvertisingExpense_C0A81ECE839BC0CC77C5FA5C22DEB4AF" 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_D04318A3727DC8F53CC4E38380A544DF" 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_542EF05B295A6430578EE38380A50FA6" 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_D04318A3727DC8F53CC4E38380A544DF" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_542EF05B295A6430578EE38380A50FA6" 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_909D9F39EEA64C67B945E38380A727D4" 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_542EF05B295A6430578EE38380A50FA6" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_909D9F39EEA64C67B945E38380A727D4" 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_AC79417DEE10EB326B99E38380A78A4F" 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_909D9F39EEA64C67B945E38380A727D4" xlink:to="loc_us-gaap_EquityComponentDomain_AC79417DEE10EB326B99E38380A78A4F" 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_6D197FFD717317FA1F0EE38380A883EF" 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_AC79417DEE10EB326B99E38380A78A4F" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_6D197FFD717317FA1F0EE38380A883EF" 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_57EE372DA40A74CBD22EE38380A862F2" 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_542EF05B295A6430578EE38380A50FA6" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_57EE372DA40A74CBD22EE38380A862F2" 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_6556C5AA9680B3551B5CE38380A8C9CB" 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_57EE372DA40A74CBD22EE38380A862F2" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_6556C5AA9680B3551B5CE38380A8C9CB" 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_E1EFF3E9FA11CC03A4CBE38380A8E57D" 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_57EE372DA40A74CBD22EE38380A862F2" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_E1EFF3E9FA11CC03A4CBE38380A8E57D" 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_A35382E43763295F7901E38380A9FE5D" 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_57EE372DA40A74CBD22EE38380A862F2" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_A35382E43763295F7901E38380A9FE5D" 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_E66EDE465680433E0E0AE38380A974AA" 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_57EE372DA40A74CBD22EE38380A862F2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_E66EDE465680433E0E0AE38380A974AA" 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_9550C9D3418184EF1560E38380B6199A" 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_3903FADCA09840C32227E38380B79EC6" 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_9550C9D3418184EF1560E38380B6199A" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3903FADCA09840C32227E38380B79EC6" 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_E793D9BA17C9D6702553E38380B7D394" 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_3903FADCA09840C32227E38380B79EC6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_E793D9BA17C9D6702553E38380B7D394" 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_491286FEF306B1D2B200E38380B7708B" 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_E793D9BA17C9D6702553E38380B7D394" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_491286FEF306B1D2B200E38380B7708B" 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_686F9BD224DD7989C89DE38380B8A8A1" 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_491286FEF306B1D2B200E38380B7708B" xlink:to="loc_us-gaap_DistributionRightsMember_686F9BD224DD7989C89DE38380B8A8A1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" 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_491286FEF306B1D2B200E38380B7708B" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_F5CEB585485692457BF6E38380B89F41" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" 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_491286FEF306B1D2B200E38380B7708B" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_E0188CAF3F4755FA6386E38380B86173" 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_69F3ABF45ED0B91CE003E38380B8A708" 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_FiniteLivedIntangibleAssetsMajorClassNameDomain_491286FEF306B1D2B200E38380B7708B" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_69F3ABF45ED0B91CE003E38380B8A708" 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_A9C4F6A0906443B487CBE38380B9DADF" 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_3903FADCA09840C32227E38380B79EC6" xlink:to="loc_srt_RangeAxis_A9C4F6A0906443B487CBE38380B9DADF" 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_6104E5C9AB48FBB81E1AE38380B94FB2" 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_A9C4F6A0906443B487CBE38380B9DADF" xlink:to="loc_srt_RangeMember_6104E5C9AB48FBB81E1AE38380B94FB2" 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_EEA873743FCC4B1C73C4E38380B9E387" 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_6104E5C9AB48FBB81E1AE38380B94FB2" xlink:to="loc_srt_MinimumMember_EEA873743FCC4B1C73C4E38380B9E387" 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_DA0745FDB0E954406140E38380B94943" 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_6104E5C9AB48FBB81E1AE38380B94FB2" xlink:to="loc_srt_MaximumMember_DA0745FDB0E954406140E38380B94943" 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_6D92D25F767B697487BDE38380B958E4" 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_3903FADCA09840C32227E38380B79EC6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6D92D25F767B697487BDE38380B958E4" 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_A1CBF306016A877921C8E38380BA3AD3" 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_6D92D25F767B697487BDE38380B958E4" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_A1CBF306016A877921C8E38380BA3AD3" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_NatureOfOperationsPolicyTextBlock" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock_9862F053B3B010B35F13E38380CDD032" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_cgnx_NatureOfOperationsPolicyTextBlock_9862F053B3B010B35F13E38380CDD032" 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_B72022A0540E3DB6005EE38380CD7B44" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_UseOfEstimates_B72022A0540E3DB6005EE38380CD7B44" 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_D29A91EFABB0EC6C35DFE38380CD550B" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_ConsolidationPolicyTextBlock_D29A91EFABB0EC6C35DFE38380CD550B" 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_61A85063F4E3FCC0FCABE38380CD8191" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_61A85063F4E3FCC0FCABE38380CD8191" 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_EFCF23FBB0F9C4237D4BE38380CE19E4" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_EFCF23FBB0F9C4237D4BE38380CE19E4" 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_FC95C119BE335D6FC3A8E38380CE449C" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_FC95C119BE335D6FC3A8E38380CE449C" 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_05423811122D302A95A9E38380CE03B6" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_ReceivablesPolicyTextBlock_05423811122D302A95A9E38380CE03B6" 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_DE8C8D1C9D8684B654F6E38380CF764D" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_InventoryPolicyTextBlock_DE8C8D1C9D8684B654F6E38380CF764D" 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_7853827C733515D89FE3E38380CFAD04" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_7853827C733515D89FE3E38380CFAD04" 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_A26466A3AECD02525C28E38380CF484C" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_A26466A3AECD02525C28E38380CF484C" 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_B94CFB6EE01F9ABA0644E38380CF48FA" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_B94CFB6EE01F9ABA0644E38380CF48FA" 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_462887E6A3AC6946BE4DE38380CF623F" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_StandardProductWarrantyPolicy_462887E6A3AC6946BE4DE38380CF623F" 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_FFF41F4A17002546FE48E38380D0EB3D" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_FFF41F4A17002546FE48E38380D0EB3D" 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_2CDBA8B3CFA01832C76BE38380D03B97" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_RevenueRecognitionPolicyTextBlock_2CDBA8B3CFA01832C76BE38380D03B97" 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_E954E27493DA1D4391E2E38380D08867" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_E954E27493DA1D4391E2E38380D08867" 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_E68C40C2F7FB59F760A7E38380D038B5" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_AdvertisingCostsPolicyTextBlock_E68C40C2F7FB59F760A7E38380D038B5" 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_19B383880AA419F188FDE38380D0A530" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_19B383880AA419F188FDE38380D0A530" 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_CB1809B5AFE6869E5F03E38380D18981" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_IncomeTaxPolicyTextBlock_CB1809B5AFE6869E5F03E38380D18981" 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_6D2CBD31AA41D65D196EE38380D1D4CB" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_EarningsPerSharePolicyTextBlock_6D2CBD31AA41D65D196EE38380D1D4CB" 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_2E60486000E210B36E0AE38380D1B6DE" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_2E60486000E210B36E0AE38380D1B6DE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_E7D0C350D5C8A1CF487DE38380D1E607" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_E7D0C350D5C8A1CF487DE38380D1E607" 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_836FAFE8EA456FAB58E2E38380D14CF3" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_DerivativesPolicyTextBlock_836FAFE8EA456FAB58E2E38380D14CF3" 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_62815E36A9A57E655F10E39267E73ED1" 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_EBE30B3D7134A58EE3D7E38380CC776B" xlink:to="loc_us-gaap_BusinessCombinationsPolicy_62815E36A9A57E655F10E39267E73ED1" 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_302CA323F21B706181DEE397C0C12C27" 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_711D5C27D3BBF7C0AD1FE39D1D83BF42" 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_302CA323F21B706181DEE397C0C12C27" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_711D5C27D3BBF7C0AD1FE39D1D83BF42" 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_6BBBDA8BD44B0B3E6C24E39D4409A2D5" 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_711D5C27D3BBF7C0AD1FE39D1D83BF42" xlink:to="loc_srt_RangeAxis_6BBBDA8BD44B0B3E6C24E39D4409A2D5" 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_1BA6C20F137E64C63A2CE39D4412E43F" 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_6BBBDA8BD44B0B3E6C24E39D4409A2D5" xlink:to="loc_srt_RangeMember_1BA6C20F137E64C63A2CE39D4412E43F" 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_47987E55719BDE1AE351E39DF55085ED" 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_1BA6C20F137E64C63A2CE39D4412E43F" xlink:to="loc_srt_MinimumMember_47987E55719BDE1AE351E39DF55085ED" 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_F59D823F6B7D70D86190E39E1D4BCA49" 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_1BA6C20F137E64C63A2CE39D4412E43F" xlink:to="loc_srt_MaximumMember_F59D823F6B7D70D86190E39E1D4BCA49" 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_5362DA372C41531E4FCCE39D1D842B00" 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_711D5C27D3BBF7C0AD1FE39D1D83BF42" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_5362DA372C41531E4FCCE39D1D842B00" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_RevenuePaymentTerms" xlink:label="loc_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" 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_5362DA372C41531E4FCCE39D1D842B00" xlink:to="loc_cgnx_RevenuePaymentTerms_DD7C76C90F3CE849A438E39C84326247" 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_B3F575E737F0123F7823FA5C20DD41CA" 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_9B95866CD96AD3C552A6FA5C20DE1D97" 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_B3F575E737F0123F7823FA5C20DD41CA" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_9B95866CD96AD3C552A6FA5C20DE1D97" 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_16B2C92C9FC5B8F2075DFA5C20DE6840" 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_9B95866CD96AD3C552A6FA5C20DE1D97" xlink:to="loc_srt_RangeAxis_16B2C92C9FC5B8F2075DFA5C20DE6840" 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_B5D9765D081AF0CF5B24FA5C20DE041E" 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_16B2C92C9FC5B8F2075DFA5C20DE6840" xlink:to="loc_srt_RangeMember_B5D9765D081AF0CF5B24FA5C20DE041E" 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_0D9286625191C5DE89DBFA5C20DF4479" 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_B5D9765D081AF0CF5B24FA5C20DE041E" xlink:to="loc_srt_MinimumMember_0D9286625191C5DE89DBFA5C20DF4479" 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_E7148FA4A67A6D84B34CFA5C20DFA3D4" 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_B5D9765D081AF0CF5B24FA5C20DE041E" xlink:to="loc_srt_MaximumMember_E7148FA4A67A6D84B34CFA5C20DFA3D4" 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_4711C0B12A5BA4010226FA5C20DFB5BC" 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_9B95866CD96AD3C552A6FA5C20DE1D97" xlink:to="loc_us-gaap_ProductLiabilityContingencyLineItems_4711C0B12A5BA4010226FA5C20DFB5BC" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_ProductWarrantyPeriod" xlink:label="loc_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" 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_4711C0B12A5BA4010226FA5C20DFB5BC" xlink:to="loc_cgnx_ProductWarrantyPeriod_4062B271E892CEE7F0F3FA5C20DFDDEC" 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_FAE4E5092D3BFF89A71DFA5C24205235" 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_2BAF07191B64D46908CDFA5C2420D623" 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_FAE4E5092D3BFF89A71DFA5C24205235" xlink:to="loc_us-gaap_IncomeTaxDisclosureTextBlock_2BAF07191B64D46908CDFA5C2420D623" 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_32D6E2EA394CE21187F5E3837D409BB7" 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_4F8CD2AB35B1476252BAE3837D41FE51" 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_32D6E2EA394CE21187F5E3837D409BB7" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_4F8CD2AB35B1476252BAE3837D41FE51" 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_03A860AC94408F8C8615E3837D41B845" 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_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_03A860AC94408F8C8615E3837D41B845" 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_51D1CF2B1F573C6DFE60E3837D415C23" 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_03A860AC94408F8C8615E3837D41B845" xlink:to="loc_us-gaap_TypeOfAdoptionMember_51D1CF2B1F573C6DFE60E3837D415C23" 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_31D9F4AE21AF00D27D92E3837D42680C" 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_51D1CF2B1F573C6DFE60E3837D415C23" xlink:to="loc_us-gaap_AccountingStandardsUpdate201616Member_31D9F4AE21AF00D27D92E3837D42680C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" xlink:label="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" 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_51D1CF2B1F573C6DFE60E3837D415C23" xlink:to="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_EA1E2D151D232B6C8826E3837D42602D" 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_B4A123E51D72B56B42C8E3837D42B5CD" 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_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_srt_StatementGeographicalAxis_B4A123E51D72B56B42C8E3837D42B5CD" 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_FCB986181CE8957265F8E3837D435BFC" 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_B4A123E51D72B56B42C8E3837D42B5CD" xlink:to="loc_srt_SegmentGeographicalDomain_FCB986181CE8957265F8E3837D435BFC" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OtherThantheU.SMember" xlink:label="loc_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" 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_FCB986181CE8957265F8E3837D435BFC" xlink:to="loc_cgnx_OtherThantheU.SMember_9907E003B81DA1DE1FA3E3837D438A38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_BCD8D5F99AA25304A292E3837D444118" 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_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_BCD8D5F99AA25304A292E3837D444118" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_58C27D2A191CACF75609E3837D440CBE" 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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_BCD8D5F99AA25304A292E3837D444118" xlink:to="loc_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_58C27D2A191CACF75609E3837D440CBE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_SisdMember" xlink:label="loc_cgnx_SisdMember_51F06FC455F9E38C70DDE3837D456139" 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_DisposalGroupsIncludingDiscontinuedOperationsNameDomain_58C27D2A191CACF75609E3837D440CBE" xlink:to="loc_cgnx_SisdMember_51F06FC455F9E38C70DDE3837D456139" 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_3C3DDF671A990A95675AE3837D45930A" 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_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_3C3DDF671A990A95675AE3837D45930A" 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_05DB38C252FB11B078A2E3837D458AE2" 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_3C3DDF671A990A95675AE3837D45930A" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_05DB38C252FB11B078A2E3837D458AE2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationsDisposedOfBySaleMember" xlink:label="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_B00E3835EB7FA1AA6C43E3837D45E596" 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_DisposalGroupClassificationDomain_05DB38C252FB11B078A2E3837D458AE2" xlink:to="loc_us-gaap_DiscontinuedOperationsDisposedOfBySaleMember_B00E3835EB7FA1AA6C43E3837D45E596" 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_F2B37EA5FBB536518E89E3837D466FA3" 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_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_F2B37EA5FBB536518E89E3837D466FA3" 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_B385BCA4674BB670BB55E3837D465FEF" 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_F2B37EA5FBB536518E89E3837D466FA3" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_B385BCA4674BB670BB55E3837D465FEF" 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_9F1D9F6A5E04011855B6E3837D467651" 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_B385BCA4674BB670BB55E3837D465FEF" xlink:to="loc_us-gaap_ResearchMember_9F1D9F6A5E04011855B6E3837D467651" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_StateResearchAndExperimentationMember" xlink:label="loc_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" 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_B385BCA4674BB670BB55E3837D465FEF" xlink:to="loc_cgnx_StateResearchAndExperimentationMember_43515F15108342DA07ECE3837D462588" 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_84FBB5C9B417446DB26BE3837D46EE69" 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_4F8CD2AB35B1476252BAE3837D41FE51" xlink:to="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" 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_7DFF1865201467EB7D68E3837D47C096" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7DFF1865201467EB7D68E3837D47C096" 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_D0FDAC58CB657DB7019AE3837D4794D7" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_D0FDAC58CB657DB7019AE3837D4794D7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_28D8DC623EDF2A79B5B2E3837D476BD7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_7A141B7F5F676778DBE3E3837D475F24" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_62AB3D63585EC0797698E3837D47FE17" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_403E3655F9F36D91357AE3837D48AB43" 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_B91A5AA15431E2285AC8E3837D480B94" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B91A5AA15431E2285AC8E3837D480B94" 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_3F4C3B513234D853A128E3837D4850F7" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_Cash_3F4C3B513234D853A128E3837D4850F7" 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_93595AD2DD8EFCB0290EE3837D486F85" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_93595AD2DD8EFCB0290EE3837D486F85" 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_7AE7E32720860EB24BD4E3837D484582" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_7AE7E32720860EB24BD4E3837D484582" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A" 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_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther_FD4DDBE340A0CDF96C53E3837D48E16A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsStateTaxes" xlink:label="loc_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxAssetsStateTaxes_036D65B558268B120573E3837D49151C" 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_0DCED24A46C4EB60E77DE3837D495BC5" 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_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_0DCED24A46C4EB60E77DE3837D495BC5" 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_D9AC14F32FA3FF2945E4E3837D494A63" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_D9AC14F32FA3FF2945E4E3837D494A63" 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_251BCDAA6FA72F6D6CBAE3837D499142" 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_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_251BCDAA6FA72F6D6CBAE3837D499142" 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_5C8A2569DD5C240794F4E3837D496C23" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_5C8A2569DD5C240794F4E3837D496C23" 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_39991622501B98769EF3E3837D490EF5" 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_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_39991622501B98769EF3E3837D490EF5" 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_3336071640301B42D5F7E3837D49D289" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3336071640301B42D5F7E3837D49D289" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5EBB1A75FA88A5853BB2E3837D4A36A9" 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_CDC114FAF4952D1D65FCE3837D4A3FC1" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_CDC114FAF4952D1D65FCE3837D4A3FC1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_A72960C6B1C18EBA3788E3837D4AC788" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_2DD564BCEADAF9B80399E3837D4AC2F6" 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_3885215941B4C8E07DE1E3837D4F5F80" xlink:type="locator" />
    <link:presentationArc order="23" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_3885215941B4C8E07DE1E3837D4F5F80" 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_159ACF539CDCDEA4360EE3837D506D94" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_159ACF539CDCDEA4360EE3837D506D94" 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_81DE094D5E88B79EA18AE3837D505F1F" 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_us-gaap_TaxCreditCarryforwardLineItems_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_81DE094D5E88B79EA18AE3837D505F1F" 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_398B2463F471EB637335E3837D50DE47" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_398B2463F471EB637335E3837D50DE47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation" xlink:label="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_17793BDEC670EBC010A0E3837D502BE8" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation_17793BDEC670EBC010A0E3837D502BE8" 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_D7DC92A7783E5A8CA107E3837D50EDC4" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_D7DC92A7783E5A8CA107E3837D50EDC4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OpenTaxYearStateAuthorities" xlink:label="loc_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_OpenTaxYearStateAuthorities_F1424DEB843075A32B2CE3837D514BB4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_OpentaxyearUnitedStatesInternalRevenueService" xlink:label="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_7EB9B1D91D02128E0640E3837D5103A4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Opentaxyearvarioustaxingauthorities" xlink:label="loc_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_Opentaxyearvarioustaxingauthorities_B713EF16E50A8BDD0A0DE3837D518C28" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement" xlink:label="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_C70FD5BB060C6C51DE8CE3837D5147FD" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_TaxyearsforAPAagreement" xlink:label="loc_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_TaxyearsforAPAagreement_1AE84AC081D0F5918D82E3837D51E9B1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_Stateresearchandexperimentationtaxcarryforwards" xlink:label="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_3E6DC965D70DA9744BEFE3837D512DDB" 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_708AEAFD7797DA9746EFE3837D525908" 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_84FBB5C9B417446DB26BE3837D46EE69" xlink:to="loc_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_708AEAFD7797DA9746EFE3837D525908" 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_A5ADD1C150427A1C681CE3837CFD9060" 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_3856197B9C3B3BD40CC6E3CA0B7B18C3" 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_A5ADD1C150427A1C681CE3837CFD9060" xlink:to="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_3856197B9C3B3BD40CC6E3CA0B7B18C3" 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_07B4E17CFD66425714D1E3837CFD6959" 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_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_07B4E17CFD66425714D1E3837CFD6959" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_3FDFDA376B703FEE111BE3837CFE2DC8" 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_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_3FDFDA376B703FEE111BE3837CFE2DC8" 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_EF67D69134503C2B09C5E3837CFE0884" 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_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_EF67D69134503C2B09C5E3837CFE0884" 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_BF0F48AEC0FDF589205DE3837CFEC41F" 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_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_BF0F48AEC0FDF589205DE3837CFEC41F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_3F2614A052619F036BCDE3837CFE40FF" 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_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_3F2614A052619F036BCDE3837CFE40FF" 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_D76B3F2BF90936272F20E3837CFF81D5" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_D76B3F2BF90936272F20E3837CFF81D5" 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_F814557CCD699A8BAEFAE3837CFF959F" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_3856197B9C3B3BD40CC6E3CA0B7B18C3" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_F814557CCD699A8BAEFAE3837CFF959F" 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_5B0A5C92E3FB380722A5E3837CE95600" 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_6AE8350D491A6759BB6FE3837CE9DDCD" 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_5B0A5C92E3FB380722A5E3837CE95600" xlink:to="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F" 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_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:to="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState_7081F46CED2809133567E3837CE9099F" 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_CEF33824F78120E54FE7E3837CEA4C49" 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_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_CEF33824F78120E54FE7E3837CEA4C49" 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_FDA9AB45AEC0D5685BE7E3837CEA2ABC" 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_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_FDA9AB45AEC0D5685BE7E3837CEA2ABC" 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_0AD7984DB58210449A56E3837CEAB20F" 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_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_0AD7984DB58210449A56E3837CEAB20F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_DB233DB63F957A5549DFE3837CEAD936" 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_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:to="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_DB233DB63F957A5549DFE3837CEAD936" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_28C5F49F8449CEBDDC79E3837CEBD952" 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_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:to="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_28C5F49F8449CEBDDC79E3837CEBD952" 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_09145D23B7135A7C74AFE3837CEB97B7" 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_DeferredTaxAssetsNetNoncurrentClassificationAbstract_6AE8350D491A6759BB6FE3837CE9DDCD" xlink:to="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_09145D23B7135A7C74AFE3837CEB97B7" 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_DE1762CCF50D3454FACCE3837CEBE04C" 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_5B0A5C92E3FB380722A5E3837CE95600" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesAbstract_DE1762CCF50D3454FACCE3837CEBE04C" 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_E80B788FE3D9286FA12DE3837CEBCE9C" 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_DE1762CCF50D3454FACCE3837CEBE04C" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_E80B788FE3D9286FA12DE3837CEBCE9C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesNoncurrent_AC82870E17D9F195B062E3837CEB6639" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_DE1762CCF50D3454FACCE3837CEBE04C" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesNoncurrent_AC82870E17D9F195B062E3837CEB6639" 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_A5E520514C06EC029A4BE3837CEC6BA0" 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_IncomeTaxDisclosureAbstract_5B0A5C92E3FB380722A5E3837CE95600" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_A5E520514C06EC029A4BE3837CEC6BA0" 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_21375A50C9E43CB232C0E3837CECF13E" 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_IncomeTaxDisclosureAbstract_5B0A5C92E3FB380722A5E3837CE95600" xlink:to="loc_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_21375A50C9E43CB232C0E3837CECF13E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7" 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_5B0A5C92E3FB380722A5E3837CE95600" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7" 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_B8C21550BFECAA2D316CE3837CEC3087" 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_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesOther_B8C21550BFECAA2D316CE3837CEC3087" 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_33185FEDA0B0A2237834E3837CED9FD8" 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_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract_22E84288E5E2B2330C02E3837CECFEA7" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_33185FEDA0B0A2237834E3837CED9FD8" 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_02261D7D9A35E0F814F5E3837CEDE295" 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_IncomeTaxDisclosureAbstract_5B0A5C92E3FB380722A5E3837CE95600" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_02261D7D9A35E0F814F5E3837CEDE295" 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_EB31FDD07E9D1D08025FE3837CF27F94" 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_02261D7D9A35E0F814F5E3837CEDE295" xlink:to="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_EB31FDD07E9D1D08025FE3837CF27F94" 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_88D42660CD00E111BC91E3837CF293F1" 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_EB31FDD07E9D1D08025FE3837CF27F94" xlink:to="loc_us-gaap_DeferredTaxAssetDomain_88D42660CD00E111BC91E3837CF293F1" 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_11A6A906B8A184471E39E3837CF21BEC" 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_88D42660CD00E111BC91E3837CF293F1" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_11A6A906B8A184471E39E3837CF21BEC" 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_35A917FD66B3A6A7D6DBE3837CF3218B" 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_02261D7D9A35E0F814F5E3837CEDE295" xlink:to="loc_us-gaap_TaxCreditCarryforwardLineItems_35A917FD66B3A6A7D6DBE3837CF3218B" 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_E26C651D3DFF3D2B806CE3837CF36BA7" 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_35A917FD66B3A6A7D6DBE3837CF3218B" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_E26C651D3DFF3D2B806CE3837CF36BA7" 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_5680372518C4C9ADCCECFA5C20A787C7" 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_1C0C2BA7728697DB503BFA5C20A83FE0" 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_5680372518C4C9ADCCECFA5C20A787C7" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_1C0C2BA7728697DB503BFA5C20A83FE0" 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_10F8318A94E3352242F3FA5C20A8E22C" 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_1C0C2BA7728697DB503BFA5C20A83FE0" xlink:to="loc_us-gaap_CurrentFederalTaxExpenseBenefit_10F8318A94E3352242F3FA5C20A8E22C" 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_82E750F354BC99762129FA5C20A82ADF" 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_1C0C2BA7728697DB503BFA5C20A83FE0" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_82E750F354BC99762129FA5C20A82ADF" 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_BDB3D9CEDC89F61B92BFFA5C20A92504" 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_1C0C2BA7728697DB503BFA5C20A83FE0" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_BDB3D9CEDC89F61B92BFFA5C20A92504" 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_5F1799FDA2744A00C7AEFA5C20A9947A" 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_1C0C2BA7728697DB503BFA5C20A83FE0" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_5F1799FDA2744A00C7AEFA5C20A9947A" 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_C6AFA0D0C4E5BCE58904FA5C20A996D4" 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_5680372518C4C9ADCCECFA5C20A787C7" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_C6AFA0D0C4E5BCE58904FA5C20A996D4" 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_C4FA87CC011FCBFD0E4BFA5C20A9E45E" 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_C6AFA0D0C4E5BCE58904FA5C20A996D4" xlink:to="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_C4FA87CC011FCBFD0E4BFA5C20A9E45E" 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_3B6D7CF24B179F722494FA5C20A9F424" 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_C6AFA0D0C4E5BCE58904FA5C20A996D4" xlink:to="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_3B6D7CF24B179F722494FA5C20A9F424" 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_B77091DA375F572F789DFA5C20AAC901" 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_C6AFA0D0C4E5BCE58904FA5C20A996D4" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_B77091DA375F572F789DFA5C20AAC901" 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_EB5926859845D70E999CFA5C20AA5190" 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_C6AFA0D0C4E5BCE58904FA5C20A996D4" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_EB5926859845D70E999CFA5C20AA5190" 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_ED909099BA6AD1D88652FA5C20AAB042" 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_5680372518C4C9ADCCECFA5C20A787C7" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_ED909099BA6AD1D88652FA5C20AAB042" 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_7DCDDDADE3B430BE7122E48798CCF62B" 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_E638CB277A1C094CB823E48798CCC12D" 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_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_E638CB277A1C094CB823E48798CCC12D" 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_A0CD7C6EE6BFFAF9E822E48798CCA458" 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_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_A0CD7C6EE6BFFAF9E822E48798CCA458" 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_731051A47CE97D13CB5DE48798CCE2C7" 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_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_731051A47CE97D13CB5DE48798CCE2C7" 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_832025F67CD38DC73C32E48798CD7CB3" 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_IncomeTaxDisclosureAbstract_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_832025F67CD38DC73C32E48798CD7CB3" 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_1E0FDD1E0EE3E830705EE48798CD77C2" 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_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_1E0FDD1E0EE3E830705EE48798CD77C2" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20181231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B" 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_IncomeTaxDisclosureAbstract_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_2CE29762162C911F709CE48798CDB68B" 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_E285E2684D5FA0DC5B37E48798CDF320" 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_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_E285E2684D5FA0DC5B37E48798CDF320" 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_225F80862B6C5515F85DE48798CDBBFA" 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_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_225F80862B6C5515F85DE48798CDBBFA" 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_F70011A377697A6A1959E48798CEFE91" 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_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_F70011A377697A6A1959E48798CEFE91" 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_C71F8E8C1C2D0A3C5866E48798CEE7D1" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_7DCDDDADE3B430BE7122E48798CCF62B" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_C71F8E8C1C2D0A3C5866E48798CEE7D1" 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_CBEC41BCC2332CA6077FFA5C24B6C0E8" 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_1B7FAE48685187FFD3D5FA5C24B75A39" 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_CBEC41BCC2332CA6077FFA5C24B6C0E8" xlink:to="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_1B7FAE48685187FFD3D5FA5C24B75A39" 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_91EA6797AAC6330FB3D0FA5C24B7D532" 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_CBEC41BCC2332CA6077FFA5C24B6C0E8" xlink:to="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_91EA6797AAC6330FB3D0FA5C24B7D532" 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_631964B2B840A2D62473FA5C24B7EC8E" 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_CBEC41BCC2332CA6077FFA5C24B6C0E8" xlink:to="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_631964B2B840A2D62473FA5C24B7EC8E" 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_FF3F08180AA195BDB464FA5C24B75386" 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_CBEC41BCC2332CA6077FFA5C24B6C0E8" xlink:to="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_FF3F08180AA195BDB464FA5C24B75386" 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_A70B064C423E721F9C8BFA5C231967A6" 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_8E21BB87EAF1B1A738CAFA5C2319F39B" 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_A70B064C423E721F9C8BFA5C231967A6" xlink:to="loc_us-gaap_EarningsPerShareTextBlock_8E21BB87EAF1B1A738CAFA5C2319F39B" 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_96A352F6020144D1A3B6E3837CC03C58" xlink:type="locator" />
    <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_1D2FFCEAC12D0CC0DFEBE3837CC23841" 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_96A352F6020144D1A3B6E3837CC03C58" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_1D2FFCEAC12D0CC0DFEBE3837CC23841" 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_A830E42C9627B5B09A64FA5C253B45C3" 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_3E18F815EFF092322221FA5C253CFD40" 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_A830E42C9627B5B09A64FA5C253B45C3" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_3E18F815EFF092322221FA5C253CFD40" 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_C7A3D8A9A2596F98EA30FA5C253C880B" 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_A830E42C9627B5B09A64FA5C253B45C3" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_C7A3D8A9A2596F98EA30FA5C253C880B" 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_5725445FCC2FBDEE2A43FA5C253C2116" 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_A830E42C9627B5B09A64FA5C253B45C3" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_5725445FCC2FBDEE2A43FA5C253C2116" 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_956D074935369588609EFA5C25A7D5B9" 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_B7B1DC4634AA88F3C334FA5C25A76772" 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_956D074935369588609EFA5C25A7D5B9" xlink:to="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_B7B1DC4634AA88F3C334FA5C25A76772" xlink:type="arc" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>14
<FILENAME>chart-b7c77181d2175a648f7.jpg
<TEXT>
begin 644 chart-b7c77181d2175a648f7.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
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH *^,/V[_V^_V9O^"</P%U?]HC
M]J3QM)X4\%6>HVWA_0-'TBQ_MOQO\0/&&H6]U=:9X)\ ^&DGMI-=\27]M97M
MX4ENK#2=)TNRO]<\0ZKI&B6%YJ$/V?7\#/\ P=/ZYKVK?\%:?^"0OP]^)WG2
M?LQ1:C\.]>NK74"/^$?N]=\1?M/Z!H/QG:6*Z*:?<7-IX T7X>VUVUR6%OIF
MHJDABM[V0R@']3'P?_;!_;\^+OPRL/C='_P38MO _@/Q#I-MXD\(?#7QS^UK
MX2T/]J76_#5^D5_I%UJ7PPE^$S?"7P?XDUS1[FVN[/P9XO\ V@-%U+2[F7^S
MO%-_X?OEF@M[O@;_ (*M_ "Z_8)\7_\ !0WX\Z%XV_97^#W@GQ=\7_!_B/PC
M\9+"UB^+&@Z[\)OB[XH^"TGA/6_!WAZXU4)\2/$OC/PO/INF> ]%U'7+J/4;
MVUT\ZE<".ZO(?T]0!D8<E2TH(;OF1P1].H'?'7FOXCO^#S[P]KO@S]BK]EK2
MO >C1Z!\(_$O[6GQ#\7?$Z'1H)+/2]5^*^O?#KQ%KGA;5]8CA86]QJ>M2WOQ
M.U:6>=3]KU/[1>X-V6D8 _?_ . W[?'[8?[4W[-MG^UY\"OV"]'/PA\7Z!J/
MC3X-?#[XN?M+VGP[_:-^,G@01&?PSXDTGP;H_P '/''PM\$W'CBV5[SP7H_C
M+XO0Q:Q92Z9?:AK6B:=JUK?KZK^P)_P4W^!7_!2_X!^)?BY^RRMV?'/@75&\
M'_$CX'?%Z>7X>^//A7\15C>2/PM\1ETC3/&SZ787ZV][+H_BO0--\2Z1JZ6&
MHVUJG]L:/KNDZ3]%_L;6_AZT_9"_99M/"FP>%+7]G3X%6_A@(D<<0\/P?"_P
ME'HHCCB584C^P+;;%B58E'$:JH '\6'_  ;K-XHM?^#A/_@LMIO@%KQO@/\
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
M#PCXB\3>(O%LT5E-<6-HOBGQ+KNL:_!86-S<V.G6NHP6%E<W-K;17$OYY?\
M!MW\/OA-\7/^#>[XD?"7X[:I'HGP@^*_CG]J[X7_ !$U9[^+2I-/\+?$-M(\
M':E=VFJ3Q3PZ=J,"ZU')I=]+#+':ZDMI-)&Z(R$ _:GX9?\ !03XY_&#]ES2
M?VWOAS^QO?\ C3]GKQ7X-O/BEX%\$>%_C5X?U+]K+Q=\*(6U:^T[Q3IOPCG\
M'6'PH;Q7KWAZP@UK2_A7'^T%)XI N5T.>\'C /X93T?XS?\ !3?]F?\ 9J_8
M-\!_\% _VBM9U#X8?"KQ_P##+X8>/]"\*M;IKOC_ %G7?BQX/T_QAX6^%_A7
M0X6L#XD\=7-M>S6S6R/I^G6<&EZOKVM7VC^'-)U35++^,O4? _\ P79_X-C)
M]7U?X<:A9_ML?\$P?#7B*[U2ZL+N*]UOP9X3\.:IJB>?=^(-!CEN/B/^S-XA
MO;B]FFOM?\+W/B+X-2>)]074=6?7KR\-@_G?_!SC^U'H/[9/[(__  12_:$^
M%.AZ[X*_9"^,'A_XQ>(E\'"UAL[;P;XTT:\^%/A+4?!FKV^G :.^H> ](T_Q
MSX9\/W-I$MC=V=IX@NM&4:;=2Q@ _L8\-_MU?MM^+OV5[?\ ;*T7_@GOIJ?#
MG4O '_"V=!^"&I?M,6]M^UEKGPQFM%\1Z=KD'@*V^"M[\*;+QMJ_@9U\2:;\
M*;SXPC79)I+?P]>ZQ8>))VTJ#V']DG_@HS\)_P#@H9^R-<_M2?L*PZ;\6[U/
M[0T<_"OXB>)G^$?B'P[\0M(M[.^U/X:_$34[7P]\0T\&^(X["^M+K3[^'2/$
M/AO6+34-)U;3M7F\/ZB-8A^]]'@TN#0M*MM&CMUT:'3M-@TR.!8A;#2X[:WC
MLUA2-5B$ L1$$5%$8CP%&S K^#?_ (,[7\40?M1_\%5M-\&O?/\  2#6OA^\
M.X2KI2>*T^)_Q>M_!36D8"64>H3^ X]?^WBU19#:6^FK.!%':J #]L_^"5O_
M  <5_ W_ (*0?M$>-?V3O&OP5\3_ +)7[06C:9+J_@/P+X_\>:-XRA^*5OHT
M%Q>>,-,\-:Q8>'/"L<7B?P[I:6OB2WT VEZ_B7P?)J'BC0;NZT_1=2\O]5-
M_:.^/6J?MI>+OV8-1_9S\*:9\-?"OPI\-?& ?'^W^.L^HIJWA[QGXO\ &W@S
MP[X=L_AD_P (-/U*+QS%J7@75+WQ)IL_BQ?#>D:/<Z?=V/BO6[RZCTZOY4/^
M"D'_  1Y\=_M!?L"?L-_\%-OV%1K?A']O?\ 9;_9F^ OBS4D^'Y?3_%_QD\&
M_#CP;HFJZ%J?A\V$:SWWQJ^%$%DMYX+G EU+QIX2M+OP!.-6O;#P/ID/Z5_\
M$#?^"ID7_!5W6/'7Q9\2Z(/#7QW^$7[,WP%^$W[1.CV.FS6'A:[\?I\4?CWJ
M^F^-/!<DCNG]@>/=#*Z]+H.$N?!NM'5?#4K7EA::3J^J ']'?C#Q?X7^'_A3
MQ+XZ\;^(-(\)^#?!N@:OXI\5^)]?O[?2]"\.^&_#^GW&K:YKFLZG=O%:Z?I6
MDZ9:7-_?WMS(D-M:P2S2,%0U^1_[)'_!4CXA_P#!1JR^)7Q(_80_9HTGQ3^S
M1\/_ !K>^ - _:!_:0^+VK_ NP^-?B?P_#!/XIC^$OP\\*_"#XP^,AX7TQ+_
M $L)XS\?)X/BFN;[^S5T$ZKI^N6.D>-_\'.UW\1+/_@BE^V))\.VOXY9;?X0
MVGC.32C(-03X;WGQM^'UMXW5#"1*;"?3)$MM>7YH6\/3:JMV/LC3D3?\&Q-M
MX;M_^"(G[%+>'?+;[38_&ZYUUPL8FD\2R?M$_%==:^U%55FE29(X8VEW2&UC
MM\LRA#0!]0_L._\ !5GX0_M@?&GXZ_LC^*?!7BG]G3]MC]F>_N[3XQ_LV?$3
M4M%UG4$TNUNK*U7QW\,/'/AYAH7Q.^'%T=6T.>#Q%8V6C:K!8Z_X?U+4O#EC
MIFO:/>WWQ!X^_P""YOQC\*?\%2$_X),>'OV%/#GB[]H34],77?#7BX_M<6GA
MOX6:UH9^$%Y\:6OIM7U/]GF?Q%I<Z>&=-U#36L)O#=Q,WB*W6S@>:PGBU-OQ
M-^-1\2V?_!ZG\*#\(VO/[>O]'^&J_%**Q$BVK^%9/V.=47QV-8%N%CELE\!6
MVCW8:_+H-5CTUE/VB.T5<W]I7_A<?_$9)X(_X4(?AB/BW_PIO3?^$5_X7(/&
M)^'7F_\ ##?B_P#M0:^/ 1'BH,=)^W#2SIQ,:ZL;)K]6T\7*D _J\^%?[:'[
M5M[^UAX*_9H_:,_8:L_@IX=^(WP]^(GC+P7\=O W[3'AWXZ?#_4O$'PV3PM<
MZU\.M2TVS^%OP\\2>'/%4NF^*(M6LUUVRL;34M.L+^XT.365T_5O[+^A?VX/
MVK-+_8K_ &8_B=^T3?> _%/Q8U/P58:39^#?A)X$BN;KQS\5OB!XLU_2_"?@
M?X>>$;.QTO7-1N=:\3^(]9L;16L-#UBXL;!+_53IMU!83I7S_P#\$P](_:5N
M/@AXTOOVW[#P7=_M1Z7^U'^TQ<>,+WP5;W,_@+3HK[Q[?VO@U_A/<:S&==M?
M $_PKF\*V?A<ZLT?B23PZT$'BC=KC:J#Y7_P6-_X)\_M-_\ !1+X2?!KX<_L
MV?M?S?L=ZS\+?BXOQFN?&^B:%XPN/&&K^*/#WA?6/#_@2TT'Q7X(\:^#M<\(
MVVDS^)_$.H:C=6KZE/=7,NDRPP)_9LD-X ?-'_!/#_@MQ^TE^W;^TUX>^ GB
M3_@DA^U3^R[X1N_#OBOQ3XL^-OQEU+Q)I'@_PEI?AO2GEL[=;;7_ ()>#8=>
MUKQ!XAN=%\.Z;HECKL%^/[3GU@QRV&D7^W]B/VN?C#\6_@#\ OB%\8_@W\"3
M^TAXJ^'6@:GXNO?A%8^/U^'OB?Q1X<T"PN=3UV#P1J$W@SQI::YXPBLK:2;1
MO"MU::6?$+QR6%CJJZK)86%]_+E_P3C_ &B/^"P__!.?_@I?\%O^"8/_  5
M^(4O[5'P>_:ST'XE77[-G[1\VKW_ (WU%?$GPU\*:KXQOVM/B'K&F:5XXU:S
M_L_1&T3QWX$^)5G>^(?"NI>(/"GB70=97PS<S2>(?[(" Z=QN (/<'AE./4'
M!QTXP>* /QD_X(T?\%@O#W_!8+X6_%CXI>&/A!IWP3MOA1X\LO >K>"]3^+D
M'Q"\>F?4_#VG>(])\3:EI&G?#SPIINC>$M>M[G5=.\/:D=8U"\U+6/"WB:TD
MTZSBTY+FX^H?!O[4O[17Q!_:+_:2^"?A3]FCX?7/@W]GQ/"NF)\:-1_:+U6T
M\->,O'GC/0[+Q?IOPS30;'X ZKJV@>,/#?@K5O#OB3XB(UQK6E>%H?&'@^UT
M_4/$D^KW(TS^.WXN0>//^" O_!PI O[-^BZ'KW[/G_!4K18['P[\'+C5#H_A
M?P[\0OBUXXNO"WAJRU2& !=)T'X7?M'7=CXFTRZT[3VDL?@IXV\3>"O#Y_M0
M3.G]SG[/OP7TWX"?"CP_\/[;5KGQ1KB7FI^)?'_CO4;>.WUKXD?$_P 8ZY<^
M)_B1\1M=BC>1(=4\:>,=3U;6VL(9&LM$LKBQ\/:4L&CZ1IUM  ?@U^P-_P %
MY?C]_P %(OB!^T/\-?V<O^">?AF#Q)^S#JFB:1\3Q\2?VU-'\*6!O-?UWQGX
M=L1X9NM*_9R\3OK4*ZEX#U\74TD%A'# +"16D-ZJ)^K7[$W[7WQ@_:2\2?M%
M_#OX]?LK:M^RE\4/V=?'GA+PCJGA>]^*WA_XPZ+XUT/QMX,@\:^&_'W@[QEX
M:\,^&=,U#PQJUA,]M:LMM)=P7MK?Z;JT.E:WIFJ:/8_P.?\ !&?4/VUM,L?^
M#@NZ_8?TOX4:G\18]%LSKI^(.I>+;+Q79^&1X_\ VFAK5Y\)+70K&;P_J?Q"
MMO#3>);CPU:>,=1TK3&\3P>&E26YADO[<_Z6FBVWA2QNH[C3H-&MM<UK0=+F
MEGBCM(M=UC0]!B6WTZ6Z?:FIZA8Z0VLF"WDG\V&QEU5HE,4E\5E /D+]OS_@
MH-\!O^"<WPP^'GQ7^/VJ/I_ASXC_ !X^$WP*TCR+JTMYK;4/B3XB2TUOQ3="
MY;)T#X=>"[/Q+\0O$YC0S2:-X<GL;5AJ%_8J_P!MWEQ=#3KNYTN&UO;Q;.XF
MT^"[O)+*RN[I8'>TBN+^WL]2EM;2XF$:RWD%A?O# [7$5I=,JP2?Q:?\'">J
M?LF_M[_"C]M7P=XG_:-^&OAWXV_L3QZ;X=_9.^%^J^*M5L]9\1_%CP6MGXV_
M:BF31+2P2TUF_P#B/HEWI'[/?@6VN9KN;2O'?PLUYXFLK77[J27]9/\ @W!_
M;^_X;S_X)@_"F\\4ZW_:OQF_9SA7]G+XNM<S>9JFI7O@+2+$?#_QG>>:?M=T
M_C3X:7/AF]U'5IU*ZAXMT_Q;'')))9SD '._![_@MM\8?C;_ ,%)?C]_P3!\
M)?L2>$++XX_L\Z'XJ\4>*?%GB']K9K+X;:UX>\,7O@6 7?A[4=-_9MUCQ"]Y
MJMG\1/#FH6>G:GX?T^2VC:_MM1FM+FR9)/H?]D__ (+&_#+X[_MO_%__ ()M
M_&;X/>/?V7OVS_A'8W.N'X>^,-=\+>.O!'Q)\,V^B:5XI&M_"[XD>$Y;>#7!
M/X.UO2_&MMI.M^'?#FKW'A2[EU".U-YH_B/3-&_F,^"/Q'^,?PC_ .#IS_@K
M9\1_@9\#8?VCO'?@_P#9W^+>OQ_!^+XB#X:^(?&&EZ3I'[+FHWNF>"=8F\$>
M.K'5?&U[):VNG^'?#.I66BV.LW=X4D\1:?+##;WOT-_P02LO '_!5S_@J+^U
M)_P6E^*GQ"T3P7^TA\/M0?X=>&OV+?#FGZB-1^#GA;6/A=9?!SPEX_\ %OC7
M63ITWCBTU#P!HWB?PDBZ;X9TM!X\7Q+J&N1Z']E\.Z'. ?V^T4=** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***;N&<<GG!P"V#Z$@$
M _7% #J*0,#G!S@D''."."#C/([CJ/2C/U_(_P"% "U^9O\ P5&_X)6?LW?\
M%7/@;IGPC^.ZZ_X:\1^"-8N_%7P@^+_@>6SM?'WPN\5W=G'9WMUI,E_#/9:M
MX=UZ"VL;?Q7X3U)!I^N1:?I=Y#<:7KVBZ%KFE_ICGZ_D?\*,CW_$$?S% 'Y>
M_!WX/_\ !5/X?>"= ^$GC?\ :L_92^*-EX:\.V_ABV_:+UG]G7XJ67QI\0VU
ME +"T\1^+/AY;_'%?ACJ?CLV4<=Q?ZY;ZY9:!JNM-_:-[X2DB%U::CZW\=?^
M"?7P._:E_8Z\1?L7?M-7_CWXZ>!/%EC<RZ_X^\=^(;6Y^+$GC2;7;WQ3:?$G
M1?$EAI-CI/A?Q7H'B.^EO?"MAX=\/:=X+\-Z/';^!],\*Q> HV\-2?=%)D>_
MY'_"@#\A/V??V1?^"@W[*/[,?A?]D'X4_M2_ CQWX4^&WA&7X<?!?]H'XO\
MP:\<7'Q>^&_@&Q@%AX$T[Q/\//#/Q @^'/Q9U[X9Z,Z:)X?UE]=^'>E:QI^A
M^'5\1>'+QX=4;4NK_P""=O\ P2S^%7_!+WX"?$+P/^SUJ<_C_P".?Q8UJ?Q[
M\7?CY\95FNO$GQ>^)+&\DL]1\6IX::&XTKPCHTVIZLWA_P ):)<2+I;:KJVH
MW.H:KXAUO6];U#]4,_7\C_A1GZ_D?\* /RG\%?\ !/\ ^('CG]@;X\_L(_M?
M^.OA1\2_#_QBT/XUZ%!XV^%GP\\4>"#I2_&GQGX\^(?]JR>$_%WC/QG FM_#
M7Q?XOT[4?!>HV>N!KF;PUIE]J<4>H"2>7S;]J#_@E=K_ (^_X)3>'O\ @E/^
MSC\0OA[\*?AS%\&O GP7\0?$;QOX&\1^+=9_LKP1JO@[7KWQ-I'A?PUXI\+V
M$OBKQUKN@:SJ_B.]U75WM[?5/$-QJ,%M?2*\,G[0Y'O^1_PI: /PY_8N_P""
M;'[4/[&__!,#5/\ @G/HGQN^!/C.ZTWPA\6? W@+XPZA\,OB-I(L-)^-.M?$
M37O$6I>*? T/CZ]36-4\,W_CLQ:!!I7B71K'5;&PCAU86MR7O)X?^"'O_!*G
MXP?\$B/@M\0OV=?$7QP^&_QT^'?C7XFZY\8+/Q!HOPZ\6_#[QGH_BK6_"W@;
MP?<:+/;ZAXT\6Z#J7AX:?X)M]0AN$2PU6"_O;J%S=VA@^R_N910!^?O[2/[/
M_P"U'\6?VD_V9_B3X'^)_P %-'^!O[/GB;7OB!J7P@\;?#OQKKOB#XC_ !#U
MSP-XG^'^C^);SQQHWC+2[#PVOPWTKQ9K>J>"]/@\+ZS#<:_J4NJZNQO=-\/W
M.C_,_P#P6O\ ^"6VO_\ !6?]FSPI^SGI/COX=?"Q?#OQ&TCXF67Q*\7>"_%'
MCKQ-X:UC1+'5-'-GX5TS1/%7A2T2U\2:%KVKZ1X@;5-1GA-M);RP6$MY;V=W
M8_LSD>_Y'_"C(]_R/^% '\TW[3?_  1Q_;@_:Q_X)?\ PL_X)H?%7]L+X$ZC
M9?#:?X9V=W^T(?@?\2;CQUXP\+?!]+FW\":5JGA.3XKIH]MX@M[!=%TW7O%S
M:YJ,VO0:/+>3:3;ZGJ]Q>6WO'Q1_X(Q6?[3_ /P28\"_\$T?VH/&GP^U[Q+\
M"_AKX!\$_L^_M!?#_P #:_I-_P""?%/PG\'VWA+P)\1[OPAXF\3ZS*;_ %#2
MH+C0?B'X<TSQ+#I?BGPWK.O6=C=:'=76F3Z-^\.1[_D?\*,CW_(_X4 ?SY^
M/^"7W[>WAS_@EE\1/^"8/Q!_;!^"'Q?T3Q-\*/$GP%\$_'/Q-\&OB9I_C3P+
M\'?$^D3Z)'X8O_#]K\5;RS\9WW@?2IY-'\!:M<ZWHJZ?H<&B:3K%EJ\&@H=2
MPOV-/^"+GQK_ &8O^"77[17_  3!\0_M&?#;Q7X5^,?A[XP6'A7XS^&/AEXT
M\*^,/!6K?&*+2+74;Z^\-7_C[7=+UG_A&A;:AJFB7.G:QH5W+>_V5:S+ MK<
MZA=?T4YQZ_D3_(49'O\ D?\ "@#\LO'O[+G[=GC_ /9L\7_LB>*_VFO@QXW\
M+?$3X4^)/@SXN_:5\5?!C7H_CI>>"_&'AQ_"'B/5-1^&FE>,E^#?B'XF7OAS
M4=8C7Q<;OP_X-;Q#)8^(+[X6W]M'>Z%>97QI_P"",7[$_P ;_P#@G1X'_P""
M9OB3PGKME\#/A3X9T+3/A/XFT_4[0_$[X?>,O#UOJ2VOQ5T7Q%<:=+I[^.]6
MO]<\1:AXLDGT8Z#XG7Q/XCTJ_P!&72-2%I;_ *Q9'O\ D?\ "EH _(W0OV6O
M^"DOAG]EJS_9#TK]KOX&2C2_APOPAT3]K^^^"_CW_A>^E>"[?2H_"NE^(I_A
M?#\23\.=7^+VC^$E$%OX[F\:VFA7OBFUM/%>H^!;EVN],N/0?V(?^";GPV_X
M)A_L@2_LX_L26N@V_C&:YD\3ZY\3/C3;:GXAN_B1\2M0CL+'4?&_Q(C\&W'A
MR_O8K?3+*#3M$\,>'+O0],TG2K"RTJTN())M3UB\_3#(]_R/^%&?K^1_PH ^
M1?V(/@U\9OV>OV;OAC\"OC7XU^''Q%UKX2^#O#7P_P!%\;?#?PCXE\"6?B+0
M/"VE0Z5IVIZQX7\1>)/%ATK79;:VMC?+I6M3Z;-=+/=VL%A%/'86OBW[*?\
MP31^#/[&O[7W[9O[3?P-CMO">@_MJV'PDUSQY\*K#3(K30?#7Q5^'NJ?$R[\
M5>-/"LUNT<5EI?Q*7Q[;:OK/AHVODZ5XLL-:U73+A-.\01Z3I/Z1E@.O48.
M"QP> < $XXZXH# \ \X!P<@X/0D'! .".1U!'8T <;\1?AWX(^+?@+QG\+OB
M5X9TCQI\/OB'X7USP7XV\):_:K>Z+XE\+>)=-N=(UW0]4M6*B>QU/3;NXM+A
M%9) DI>*2*54D3\@_P!BK_@FO^T!_P $PO"/C_X%_L;_ !N^'WQ#_9<\3^/=
M>^(/PU^%G[37AKQI-XU^ 6I^+98I?$VA>'/BE\.]<0?$/P+=7-O!J6G^'?$?
M@[PWKUGJ9U"\N?&M]=ZSJ%Y)^UV?K^1_PHR/?\C_ (4 ?D;^PM_P2<\%?LL?
MM$_M!_MR_&+XC7'[2G[=?[3VI7<WQ"^-FH^$K;P-X5\$>$;D:8MK\+/@M\/H
M]9\3W/@[P/I=AH7AK0#>:YXK\4>*]6T3PKH-E=ZQ;VL-Y:WOPQKW_!%K]JG6
M/^"R&A_\%A(_VD_@#!XR\.V$/A[3O@5-\'?B7<>%W\,)\%=1^"4]M<>.X_B=
M;ZP=:FT?5K_Q##JL?AT6=IK#6MH^CWNG6\J77]+5% %>UC:.%/-2!+AU1[HV
MR,D3W)C19G7?^\8%EPC2EI#&$#DD5^=O_!0O]F3]L_\ :$TKX-ZW^Q/^W#JO
M[&WQ"^$7C>_\6ZM8W?PYTOXF?#+XU:9>VFGVL'A#XG^'[J[L-2DT?3&L[I[-
M;.>[L9$UK5'O-(GU2WT#5]$_1G(]_P C_A2T ?!O@;]E7QUXY^+_ ,!OVF?V
MOO$GPQ\>?'/]G/P5\2?#7PHL?@YX+\4>!_AIX.\1?&;3] T+XI_$"SM?&_C'
MQQXNU'Q+K_A;PU9>$=!AN]8M=+\*>&M5\4VD=KK.HZ[_ &M8_>7T]OR__5TH
MSC_]1/\ *DR/<?4$#\3CB@#^:_\ X*7_ /!%+]H__@H1^W'^R]^V/;?M'_!#
MX4K^R!K_ (8U?X9> [CX0?$3QL?%A\'?%Z'XKZ8_CO7XOB=X5$ U&XT[2M(U
M"R\.Z9;"UA74;FTU&9[JU2Q_H&G3XM-\-F2WD^':_%G[&I22:'Q4_P /%U(:
MD&+M!'<1^*7LUTWD1BX2=K\ %UM22/2@01D$$>HY!^F.M&1[_D?\* /Y@?\
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
M#]OC]H[]K7_@E!_P4F^!W[:?A_\ :7_:D\9?L):Q^VM\;?@I\4/V>?%OQO\
MBU\1_ACX/T;X>:AX?TWQ9X8T[P[XQ\4:[IT@U_X3^.]3\;_#.PU'^T)=&\9>
M"-6ETQK6TTBPB@_LP^#.MZ7\0_VVOVO/'WA*4ZUX0\*_!_\ 9B_9_N_%6G,E
MYX>O?BC\/_$W[2WQ$^('A/2]3MS)9ZEJ?@C1_C!\/[7Q.MC/<1Z1KFLS>'KU
MH-;TK5K"S_)+]M/]B'2O^"DW_!-__@J'\!/"L.D^)?BEX6_;2_:,^)?P9:QG
ML]2N]+^._P *5\.:[H/A??!)/'I>J^,M)GUKX;ZE;WHCN;+3O&\\\L"%8VH
M^P/^"P_QO\:W/[%7CKP;^S?\3_%'@OQA\0_V=?CU^T0/B]\*/$-WHOBGPC\
MOV=?A%>?%SQ!XU\&>+]&N(I]*NOB!XPNO@]\(=*UBR=;B/3OBQJFJZ;,D^E&
M6/\ ,O\ X-=)?&7[8/\ P3*^*GQ3_:=^,G[0_P ;?B+XJ_:"^*'PSO/&GCS]
MH[X[:IXBTKP/X>\)_"+7-&T/PKJ2?$.";PB;#6KJ_P!4BU;PV-,UQKG4+N.7
M4I;.3[(/+?\ @FMX:^-GB7_@W'_:4_:0_:=N;:;Q;J?_  3-_:-_9^^!+7T+
MVE_X?_92^"?PY^-5I\/I-:?49Y98?$?B_P 1ZKKLE_?PO:VNM^!/"'PB5[=I
M]*2:3UG_ (,W7CF_X)(>,88Y4=XOVP_C-;S!&#^1+)\/?@O(J3;<^6_E7$,V
MU\,89%D *D$@'S7_ ,&C/Q/^-/[3]K^VS\1/VD?V@OVB_CWXG^#WQ.^&'A3X
M:R_%[X_?%[QYI/A/2-9\/_$_^W%L?#>O>,KKPW<W6L_9[ 7]WJFDW\N=-L)+
M0VLL'F-_0[X%^!_AF/\ X*0?M,7\GB[XUWFBV7[+7[.OB[2OA]J/Q_\ C9J'
MPNT+Q?\ %SX@_M=>&?B)XJT#X<W?CV7PIHNM>)- \">$=-:;3]-AM]&&BI>^
M&[;1=2O+^\N?YNO^#/:UG^"_C_\ X*I_LM?%$1>"?CUX(^-/PXO=<^&6OW$.
MG^+A9>')/BOX4\1W]EH5TT6I7^F:#K1TVVU/5+2VFL;9=?\ #\TDRPZSITEQ
M_4M\%-<TOXA?MK?MA>/_  E(=;\'^&_A/^S!\ )_%>G/'>>'K[XG_#G7_P!I
M3X@_$+PKI6IVS26FI:AX)TKXR> ;+Q-]AFN8])U_5;KPW>/!KFCZO868!_*C
M^Q)XS^+/B[_@YX_;#_9!\6?M!_M0>*/V9?A-HGQ@\4?#_P""?B#]J']H'5?
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
M_6)O".F6>F*5DU&Q\/I8:GX[\4Q0,)H/!7@_Q+?1@FUVGX%_X-V?^"B>I?\
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
MJ_@?XE>$K?XG_$?Q5J_A3QQH']B^*/#E]JN@:WITCZ1XCM[C3O[-O+&YEO\
M^;S_ (($^.OC!\9O^"PG_!57X5_&#]H;]IOXK?#+]E7XC_$G2/@5\/\ XC_M
M*?'+QEX1\%6WA[]J#Q)X2T*0:)K?CVYL]>NM)\->'-/T6VE\21ZNDEB]]%>1
M71O9V;^W*PDCFT^SFB=9(I+6UECDC821R1F*)UDC="RR(Z_,CH65U(9"P()_
MA\_X(0:?=? /_@X8_P""TOP5^+:P^!_B)\2_%/Q8\??#WP[XAN8=*O\ QMX4
MU#]H[4_B/I6K>$[:_:UN/$-OJO@'QQH?C"R_LN*YDE\/M>:B(S;6-Y)  ?TK
M>,/A#HE[_P %1OA!K3>+_C);:;??LJ_'+XDZI\/]/^.OQBTWX3:O\0?!/QH_
M9M\.^$?&.J?"NP\;V_@6]UC0=!\8^*M*@AFT0Z->6VM22:KI-_=V&EW-G_-]
MXVU;XCR_\'67@?\ 8;'Q\_:G@_9*\8?"6[\:ZY\!]._:N_:2TKP,?$'_  RC
MXS\<F[TZ#2/BE8ZOI%LOC#1-/\2C3]-U:WL4U..8B 64\MF?ZA;75K'QU_P4
MAAN?"LL>N6/P+_9'\=>"?B7JVFW$%YIGA;QO\:OC)\)O%'@_P/J=U;/+#;^,
M)?"WP>\0>*=3\.R2)J^B>'=1\*ZOJEE:V/BS0)K_ /DG_:1^'?A3XQ_\'CO@
M7X9>*]=\6:%I'B;]G>72+O4_A[\1_%OPL\=Z3J2_L4?$/4=.E\/>-? .O^'/
M%V@:[:RBTU&SCL=2B^UHL4=_9:AI5S/9W(!]8>,OVN?VG?V&O^#DGX ?L#_!
MGXY?&7X\_LI?M0> ? VL>/\ ]G_XO?$/Q%\;KGX(ZGXITKXD+J>I> /&GCW4
M?$GQ+\(V/@C3? .D?%&ZTO6/$^I6,GA#Q!K6GW=JVFR^&+W29/\ @X)^#_\
MP4%\+_&F/]H__@FO^T7^TI\/?%7P&^ \/[3?QH^!7@KXT_%_5?"/Q+T;0/B\
M-%OO%?AGX0WOB?5/A[/>>"=,B;5O'?@3_A'DT+Q_X)M;R"/1;G4M)ET[Q#\6
M?\$V/&U]_P $2O\ @MO\;OV-O^"A4.C_ !!N/VP-1TZ[_9U_X*)?%JTCUOXL
M^);'6IWTCP!;>)?BYXH>^\2P>#?B8--B^'_Q#T:36I-.\%_&CPKI:2,WA#4+
MG6T_KU.IZ8__  4T&B'4+'^V3^PL=5_L8W=L-7&EG]HQ;8:H=+,GV[^S?M(-
MO]O:V^Q>>#"9C)E* /QK^$/_  4C^%__  6E_P""2'Q,^*7AGQ[\0?@)^U'\
M$]!\/6'QCT3X'_%SQ]\*_'/PK^)4VJZ$D7BWPAJ?@[Q1HFJZK\,/B=IUIJ=S
MX3DUPZU8P6LNO^$+Z6?Q!X:U&[D_0?\ X**_&#XR_LO_  <T7X2?"WX2Z^/V
M=?B3\+_BC\&_&?[5.E_M7^#/"/QO_9Q\>^-]&NO!WP8U7X>>&?CMXKTSQ;\=
M/B!K'BG6TF\/V>B?$>7Q]>:_;V5KHEIJ.K&RM;W^9+_@JK_P2W^+O_!+3]O/
MP1^W3^P5)>^$OV/_ -LCXK>!_@3^U9\,/#NGV\WA3X8R?&KXE^%=.US0]0T)
MHFM+#X/_ !&UZ6SUSP'>P)"GPN^*]G9:'I-UI%EJG@;3I/[A/C'^SC\#?VB5
M^&0^-WPR\*_$M?@U\6?#?QO^&*>*;*2^C\'?%;P2VI1^%?&VDQ)/#&-9T5-3
MOA:&Z6YM/W[&:UE9(C& ?G7_ ,$GOCK^T7X^^'FA_!WQY\+]7U?X2?L[?!SX
M:_!X?M<?$']I#X8?$WXQ?'']HGX<Z7I_A#X[:+\2/A#X$UOQMXC^%'B+POXJ
ML=6M]8L/B9XUD\?6NH6/V3Q)I9U.^G>R_82O%?A'^SG\#_@-J_Q;U[X/?#+P
MG\/-7^.WQ.UKXR_%V^\,Z>UC-X]^*'B*WMK?7?&NO9FECEUK5EM8YK^:W2VA
MN;R2[U"2 WU_?7-Q[50 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5\D_
M$?\ 8(_8E^+_ (XD^)OQ/_9,_9V\=?$>XFCFO?'_ (D^#_@74/&NJ>2S-%#K
M7BE]$76]<M8W9I$M-8OKZU$I\WR3( P^MJ* .<\(^#O"7@#PWI/@[P+X7\.^
M"_".@VQLM"\+>$]$TSPWX<T6S,LDYM-)T/1K6RTO3K;SII93!9VL,1DDDD*E
MW9C\]?%_]AO]C7X_>-=.^)7QK_99^ 'Q2^(VE+:Q6'Q!\;_"?P5X@\=6]K91
M""UT\>+[[1Y/$,NEP0 0QZ7<:C-IPB_=?9C'A!]444 <CHG@#P-X8\'0?#SP
MSX.\+^&_ 5IIEUHMGX+\/:#I>A>%;+1[T7"W>EV/A_2;6STJST^X%W<^;:6M
MK##(;B9V0O+(S>;_  B_9?\ V</@#J'B+5?@;\!_A#\'M2\7S277BR^^&7P\
M\+>![KQ3?33QW,^H^(YO#FF:<^N:G<7$,4UQJ>J&ZO[B2*-IKERBX]VHH \@
M\?\ [/OP*^*W@2S^%OQ,^#OPQ\??#+3S$+/X=^+_  /X<\0>!8$A@GMHH%\(
MZEIUQH!MH[>YGA2U?3VMA'*Z^5@US/P8_9*_9<_9QO-2O_V??V=?@C\#;K6;
M>2VU>3X0_"_P;\.%U6&5[220:E#X0TC2(+YW:PLMTMS%+,5M+=/,V0HJ_0M%
M 'RM\7OV&OV-?C[XVT_XE_&K]EC]G_XH_$?2UM8K'XA>-_A-X)U_QU#:64(M
M[73SXOO='D\0SZ7! HACTNYU&;3A$/*^S&,!1[WHO@#P-X:\'0?#SPWX.\,>
M'/ 5KI=UH=GX+\/Z#I>A^%;+1KU;A+O2K+0-*M;/2K/3KA+NY$MI:VL4+_:)
MF9"\KLW744 ?"]__ ,$P?^";VJZE=ZUJO[ W[&NJZUJ%W<7^H:WJG[-/P>U'
M6M0U"[=Y+S4+_5KWPC/J-[?WDDDLEW>W5S+=74DLKSRR-(Y;L_AY^P/^P[\(
MM8UGQ%\*/V//V8/ACXB\1>&-:\%:]XA^'OP)^&?@S7]9\(>([>.TU[POJFM>
M'/#6G:G?:!K%K##;ZEI-Q=265Y##%'/"ZQH%^M:* /$/@S^S/^SO^SG9ZKIW
MP ^!GPE^"6F:[+#/K&E_";X?>%_A[I6IW$#.T=S>Z9X5TS2["XN@TCLUS);F
M>0G,DCX7'DU]_P $[OV"=4\8_P#"QM3_ &+_ -EK4_B)_:MKKH^(.H_ ?X:7
M_CL:Y8R12V.LKXRN_#DWB1=5L)(+=K'45U,7EE]G@%K-$L,03[(HH ^>?C/^
MR3^RW^T=>Z;J'[07[.GP0^.5WHUNEKH\OQ>^%_@SXCC2H8WNG1=-B\7Z/J\-
MBRF^O );6.*7;=7"%]DKJ>E\#_L]_ OX9?#S4?A)\./A!\./ /PNU:&ZM[_X
M=>"_!^A^&/!,]M>V<6GW5L/#&BV=EH\-M/9016LEO;VD4)AC5 @ KV&B@#Y!
M\%?\$_/V%OAKXQL_B)\.OV.?V8O 'Q L+X:G:>.O!/P-^&_A3QE%?_;8M1>[
M_P"$HT'P[8:W)/-J$$-]</+?.;F\BCN;CS9D5Q]5ZUHND>(](U7P_P"(-+T_
M6]"US3;[1]:T;5[.WU'2M6TG5+6:QU+3-2L+N.6UO;#4+*XGM+VSN8I(+FVF
ME@FC>*1E.G10!GZ5I6F:'I>G:)HNG6.DZ-I%A9Z7I6E:;:P6.G:;IFGVT5G8
M:?865LD=O:65E:0PVMK:P1I#;V\4<,2+&BJ/EWXG_L&?L1_&[Q3=^./C/^R)
M^S3\7?&5[D7/BKXH?!'X<^/_ !#(A;S#$-8\5^'M6OXX#*6E-O%.D!F9Y3'Y
MCL[?65% 'QI9_P#!.K]@2P\0>'/%EK^Q5^RHGBCP=JUAKWA#Q&_P"^&$VO>%
M-;TN\M]0TW6/#.KS^&I;_0=3L+ZTM;RTOM*GM+FWN;:WGBE62&-E^R\ =!CJ
M?Q)R3^)Y/O110!\X_&7]CS]D_P#:*U6QUS]H#]FKX$?'#5M+MEM-+O\ XN_"
MGP1\1[C3+==X\K36\7Z+JXT]6$C+(;186D4A)&954#TWX8_";X8_!;PI:^!/
MA#\/O!WPQ\$V$IET_P (> O#NE^%/#&G,;>WM0NG:%HMM9Z981):VEK;Q06=
MM!!%!;PPQ1I'&JCT&B@#Q/XM_LV_ 'X\RZ1=?&7X-?#/XFZCX=CNHO#6L>-/
M!F@Z]KWAA;Z*2"^_X1CQ#>63Z[X<:]@FF@NVT34K W,,TT4Q=)9 VI\)_@1\
M%O@1I>J:-\%_A/\ #OX5:;KVH#6/$%K\/_!V@>%!XBUG:ZMK7B*;1K&TN?$&
MLR!W$NK:U-?ZC+N8O<L6.?6** /+?BU\#_@Y\>_#0\&?&_X6?#_XN^#_ +0+
MM_"?Q*\):)XU\,SW 0H);G0?$-EJ&E79"D;1<VDJJP5@H=58<C\&?V4?V8OV
M<WU9OV?_ -GKX+? ]==B>'6X?A'\,_!_PYM=721K5I&U*T\(Z3I-K>RR?8K,
M//<0R3NEI;1M(4@B5?H"B@#Y^^$_[*'[,?P'\0Z[XL^"?[/GP9^$?B?Q3]J;
MQ1X@^&OPW\)^"=8\3RWUREY>7/B34/#NEZ?=:]>W5U&MQ<7VK27EY--NDDG9
MW<MPOQ!_8 _88^+?B_4/B#\5?V.OV8?B;X\U2X:ZU#QK\0O@7\-?&GBRZG:Y
MEO \GB+Q)X<U+5_DNYYKJ)%NU2&YFEGB5)97=OKNB@#XF\1_\$U_^">GC+5)
M-=\9_L.?LE>,]=ECMX9=>\8_L]_"SQ5KDL-H@CLX9-9\0>&-1U*2&SC58[2)
M[HQVJ*$@6-0!5WP;_P $Z/\ @G_\._&'ASXA> ?V(?V2?!?CWP?JEKK?A/QM
MX5_9V^$V@^+?#&L6,RW%GJGA[Q'IGA2VU?1M0M;A$GM[S3KRWGAF1)4=9$5A
M]F44 <)\1_A?\./C!X4O_ GQ4\"^$_B-X*U7:-4\(^-=!T[Q+X;U2-8Y8?)U
M+1-6M[K3K^W>&>>&6VN[>:WFAFEAEB>.1U/DWP=_8U_9(_9XUB\\0? +]F3X
M!_!'6]1MC9ZEJ?PC^$G@;X<7FI6Q1HQ#J4WA#1-(.H1I&\B1"\\[R4DE6(HL
ML@;Z4HH ^5+K]A;]BV[^(?B#XNR_LF?LX1_%?Q9=ZU?^*/B?:_!?X>V/Q$\1
MWWB0./$5YKGC:RT"W\2ZK=>(-[-KD]]J<\NK2,9;]KB3YZXBT_X)E_\ !.C3
M[^;5=._81_9 TW5KGS_M6KZ;^SG\)M/U:Z^TRB>Z^U:I9^%8+^Y^U3JL]T)[
MB3[3.JS3^9(H8?<5% 'SY\&OV2_V6_V==7\2^(/@%^SC\"_@GK_C.&VM_&&N
M_"CX4>!_A_K7BR&RN);NTC\3:KX6T32[_7EMKJ:6YA_M6XNS'<223*1(Q8X/
MQ=_8D_8Y_: \2?\ "8_'?]E;]GCXU>*EA2VB\0_%GX.> /B+K%O;I;VMH(+2
M_P#%^@ZO<6<+6UE9PRQ6KPI,EI;"57\B(K]0T4 <?X#^'_@?X7>%M+\$?#GP
MEX>\#>#M$26+1O"_A72;/0] TJ&65YW@TW2M/B@L[* R.S+!;0QPIG:B*H"C
MQKXY_L:_LF_M-:CH>M?M"?LV_ _XT:_X8CCA\,^(_B5\,?"'B[Q+X;@BN)+I
M;?0/$FKZ5<:]HULUQ+-+);:=J-M;R---YD3":4/]*T4 <1\/OAI\._A-X9M/
M!?PN\"^$/AUX1L'FEL_#'@?PYI'A;0+:>Y8/=7$6DZ)9V5BMU>2*);RZ,)N;
MN4>;<RRR?-7S7<_\$Z_V![SQ:_C^[_8N_9:NOB ]\FIMX_N?@3\-I_'9U..,
M0QZE_P )G+X=;Q+_ &A% JV\5Z-4%S%;JEO'*L*J@^RZ* /G_P"-/[)_[+W[
M2"^&E_:$_9S^!GQT'@R+48/"'_"X/A1X&^))\+0:P+$:M#X=;QAH>L-HT6J#
M3--_M&/3S;I?'3[(W*R&UA*8>A?L6?LB^&/'VD?%;P[^S+\"M$^*.@6]A9:)
M\2=,^%W@^S\?Z3I^EO%+IVEZ?XQ@TI/$5KI-E+##+:Z5#J*Z=#+%'(EJ'16'
MTY10!S_BCPIX8\;Z%J'A?QEX>T3Q5X;U:..'4]!\1:79:SH^H1PW$-W EYIV
MH0W%I<""[MK:[@,L3&"[M[>YA*3P12)T  '0 <D\<<DY)^I))/J3FBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBOR
M-^(G[<'Q#\4_MY>(OV(_A=XE\&?"3Q;\+;[X$ZY/'X]\*/XTUSXU^%_C%\)O
MC[XPU#Q+X:\,MXM\%7<WPA^'OB'X?^%O"WB[7_"6H7/B5/&,VH6%]J?A33K*
MQC\5@'ZY45^?GQ:_;"\:_!OP;^R[\.-?^'WAO7?VVOVIBGA7P;\&=)\47FG>
M -*\3^$?"<'BGX[?$OQ+XSU#3[G6M$^ /P5T5;GQ#XA\2'1-0\5ZM'J/@WP5
MH>B7OC7QGI5L+_[4?[3_ (R_9:^'WP-T>]7PM\1OCU^TY^T5\+/V9/A+;6NB
M:MX6\ 0^._B4VH:IK7BG6]+B\0^(?$:^!?AG\/?"?C[XCZI9Q:_+K7B.#P]9
M^%;;5]*O==M]6L@#[THK\?OC'_P5$L/V1[?]N[P[^T/H%IXB\:_L<_!3X/\
M[07@EO!5M/X8B_:%^'_Q]U'7/AQ\,-&TG1]2U'Q._@_QI)^T#X7U/X0>(&?4
M]8T"*/6?!WC&U:%=7U/PYHOO6@_M/?$[X8_M5? 7]E/]I"'P!>>(OVGO@?\
M$WXE_#+Q=\-[#7M(T+3OB;\!I_!%S\9O@W=66O:MKMYK5G%X6^(NC^,/AWXS
M,VC7NM:5X5\<6OB'P]IMU;:/)=@'Z#T44F<>OY$_R% "T49S_P#J(_G10 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 %?@Q_P4T\&_L>?M0_$OP%X7\<_$'5?V;OVGOV8/C7I%KX
M-_:8\*7L'PU^/?PHT'Q;^SMX\^*^F>-O@[XPU&T#_$'X;ZEK=I8^'_%_@NTB
M\2>'O$VO^'/%/@34M)M-=N()W_>>L35O#?A_7KG1+S6]&TW5KKPUK"^(/#MQ
MJ-G#=S:'KB:=J.D)K&D23H[:=J2Z7J^J:>+VU,5P+34+N#S/+GD! /YJ/AYX
M:^+GCG]IG_@E[^UG_P %.?ACX;33?B'_ ,$U_C7^S_\ $&/QYX/M++X=_#G]
MK/Q5\0OA3\3-%O\ XH>%M;1O"GPQU3XY?![PIXJM[72?$\%KHNF>-],O/AK-
M%IOB.3PII5QY5X=_9K^*7@#P#\%_C1I>D>*]0_96_9#_ ."[_C3XW? 7PY/_
M &EJL7P]_P""=?C[P7J/P3U#Q3X,T2XMIM:@^#WPO^,?CWQI\1O"<44<]GI'
MP#MK[QCH!E\'VNB2U_6'+#%-&T4T:2Q.K(\<BJZ.C AE=&!5U8'YE<,IZD$@
M4_:,8Y^N3GZYSG..,YZ<=* /Y3O^"B_[)_Q9_;K\5_\ !5'XR? ;P[<^-M \
M-_L:?L-? [X.MHJ+J5C^T#\3/V8/VJ=:_;G^*/A7X:W43R6'BF2TTR'PE\+M
M/U*P-QHFI?$/Q#J'A.VU$:KX;\106?Z+^-(++]K_ /X*<?\ !.+XS_!B^_X2
M?X3?LH? 3]KOXN_$;QS:VMZFC:?XA_:<\)_#+X4_"'X77TLT41T[X@ZII-K\
M1?&6O^#K^.+Q!X1TKP;"_BC3='EUS0$U#]F(XXXD6.)%CC1%C1$4(B1HH5$1
M5 5$10 JJ JCH!21Q11;A'&D89F=MBA=SNQ>21L?>DD8EI'.7=N7)/- $E>2
M?$+X(_#[XG:G::QXNM/$EQ?6&GC3;9M&^(7Q&\(6XM%N)[L++8^#?%OA^PN9
MO.N)2;NYM9KPH4A-P88H8X_6Z1NA^A_E0!^)7_!''7_%GC>+_@IYX<\<^.?B
M#XZTGX,_\%<?VN/@S\+(/&_Q \:^+Y_ GPI\(:!\([KPQ\/_  [J'B+7M2U*
MS\+:#=:QJUSI>EO>316DVIWK1D"7:O[+_P#",Z3_ ,\[O_P:ZO\ _)]?BM_P
M1+_Y"_\ P6)_[3??MN?^HS\$J_<B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=
M_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?
MHH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=
MW_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1
MG2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7
M_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A
M&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75_
M_D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=
M_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?
MHH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=
MW_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1
MG2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7
M_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A
M&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75_
M_D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=
M_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?
MHH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=
MW_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1
MG2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7
M_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A
M&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75_
M_D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=
M_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?
MHH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=
MW_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1
MG2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7
M_P#D^M^B@# _X1G2?^>=W_X-=7_^6%;<,2011PQA@D2+&@9WD8*BA5W22,\C
MG &6=V=CRS$DFI** "BBB@ HHHH **** "BBHWFBC>)))$1YW,<*,ZJTL@BE
MF*1J2&D<0P32[$#-Y<4LF-D;LH!)129&,]NV.<_3&<_A1D8ST&<<@CG.!UQU
M/ ]3TH 6BD!!&>PZY!!'?D'!''/(''- (/K^((_F!D>_2@!:1NA^A_E2TC=#
M]#_*@#\./^")?_(7_P""Q/\ VF^_;<_]1GX)5^Y%?AO_ ,$2_P#D+_\ !8G_
M +3??MN?^HS\$J_<B@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MH PO^$H\/_\ 06L_^_G_ -:C_A*/#_\ T%K/_OY_]:MW ]_S/^-&![_F?\:
M,+_A*/#_ /T%K/\ [^?_ %J/^$H\/_\ 06L_^_G_ -:MW ]_S/\ C1@>_P"9
M_P : ,+_ (2CP_\ ]!:S_P"_G_UJ/^$H\/\ _06L_P#OY_\ 6K=P/?\ ,_XT
M8'O^9_QH PO^$H\/_P#06L_^_G_UJ/\ A*/#_P#T%K/_ +^?_6K=P/?\S_C1
M@>_YG_&@#"_X2CP__P!!:S_[^?\ UJ/^$H\/_P#06L_^_G_UJW<#W_,_XT8'
MO^9_QH PO^$H\/\ _06L_P#OY_\ 6H_X2CP__P!!:S_[^?\ UJW<#W_,_P"-
M&![_ )G_ !H PO\ A*/#_P#T%K/_ +^?_6K:AECGBCGA=9(ID62*1>5>-U#(
MRGN&4@CV-/P/?\S_ (TM !1110 4444 %%%% !1110 4444 %%%% !2-T/T/
M\J6D;H?H?Y4 ?AQ_P1+_ .0O_P %B?\ M-]^VY_ZC/P2K]R*_#?_ ((E_P#(
M7_X+$_\ :;[]MS_U&?@E7[D4 %%%% !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 %%%% !7A?Q6_:6^!_P2UGPY
MX>^)WQ$T/POK/B>X2.QTV=KF^O;*RDTOQ/JL6OZ_:Z7!>W'AKPH]OX/\10CQ
M9KT6G^'1>:9=6;:D)X9UB]TK^>?]N?PC^T?^Q)^VUIG[?WPP\'Z]^U#^SK\9
M_%'P<MOVB?V=? EG>WO[3/@;Q)\ /@O\>/#OAWX@_LVV37<&A?$'PE-\-_%?
MC#6_B/\ !J_-GKEYK/AYM8\$WC:EXHU=K, _?[0O$GAWQ3X>T?Q;X9U[1O$?
MA7Q#I&G^(- \2Z#JECK'A_7-!U:SBU'2];T?6=.GN=-U/2-2T^>"^L-3LKF>
MRO+.:*ZMYY()$D/GOASX^?!/Q=\(K+X^^&OBMX UCX):EHDWB2P^+%GXJTAO
MA[=^'K>[GL)=<@\6274>C2:0+NVFMTU!;K[++*FR&20O'O\ RZ\7?MN_L"^,
M_ G[.GP)\'?M/?L\?"']FWXK_ _P9\:]5U#QS\7/!OP<&N?LO:]/J>C>!OA?
MX-T;QSK?AC6X)/BUJWA[Q!X1\76]K91S>"/AUX.^(?AG41X?\4^(/"$D?X\_
MLN?%?P]X^_X)N?\ !NC\)/!?CCPQXI\%:W^WK\%/!'Q\TOPAXETK6;'2_$GP
MB\$_'7X_^ ?A1X^T[0KF]AT.^B\:>%O 'Q M_!VMPV5TI\,>&[MK%--\J2@#
M^NWP7\3? /Q#T*_\2>#/%NA^(-'TF_O=)UJ[L;Z/.A:MIMO;WFH:3K]M<>1>
M:#JMC9W=G>W>FZS;V-];V-Y9WLT"6EW;32Y7PZ^-/PG^+?\ :(^&GQ#\)>-S
MI5OIE_>KX;UJTU)ETC71=MX>\0P+"^Z]\,>)%T[4F\->*+%;GP[XB73=1;1-
M3OQ87?D_RB_\%DOB1X]^%7Q7_P""NO@WX8ZWJ>@^&OC3_P $Z?\ @FCJOQ5D
MTF[N8Q'X@^*/[='BK]DGQWKAEM,SZ5K/B3]F?7;WPKK6I0!-3O?#GAS03-.]
MMH&EBU_6_P#:7O9?AG_P5Z_X)'Z7\/;>V\.6'Q0^!_\ P4-^#GQ!TO1;:"SL
M;_X3_#OP!\%/B9X&TRZL;5$BCTOP5\0="T<^&2J)!HC^(M6L;!8%UV\CG /V
M:I&Z'Z'^5+7D'Q$\6_%GP_JEG:^ /A+8?$#2YM.$]YJ=W\2M'\%/9WYN+B-K
M!=/U'0-6EN4%O'!<?;4GCC+3F#R0T+.X!^2W_!$O_D+_ /!8G_M-]^VY_P"H
MS\$J_<BOP._X(=:GXHN/^'N%WJ'A:'3M6O/^"U/[9]UK&DIXCLK^/1]4F\*_
M!%KO2X]1BL(8M32SD.Q=0A@MXKD-E((]C _NC]NU_P#Z $?_ (.;;_Y$H Z"
MBN?^W:__ - "/_P<VW_R)1]NU_\ Z $?_@YMO_D2@#H**Y_[=K__ $ (_P#P
M<VW_ ,B4?;M?_P"@!'_X.;;_ .1* .@HKG_MVO\ _0 C_P#!S;?_ ")1]NU_
M_H 1_P#@YMO_ )$H Z"BN?\ MVO_ /0 C_\ !S;?_(E'V[7_ /H 1_\ @YMO
M_D2@#H**Y_[=K_\ T (__!S;?_(E'V[7_P#H 1_^#FV_^1* .@HKG_MVO_\
M0 C_ /!S;?\ R)1]NU__ * $?_@YMO\ Y$H Z"BN?^W:_P#] "/_ ,'-M_\
M(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"BN?
M^W:__P! "/\ \'-M_P#(E'V[7_\ H 1_^#FV_P#D2@#H**Y_[=K_ /T (_\
MP<VW_P B4?;M?_Z $?\ X.;;_P"1* .@HKG_ +=K_P#T (__  <VW_R)1]NU
M_P#Z $?_ (.;;_Y$H Z"BN?^W:__ - "/_P<VW_R)1]NU_\ Z $?_@YMO_D2
M@#H**Y_[=K__ $ (_P#P<VW_ ,B4?;M?_P"@!'_X.;;_ .1* .@HKG_MVO\
M_0 C_P#!S;?_ ")1]NU__H 1_P#@YMO_ )$H Z"BN?\ MVO_ /0 C_\ !S;?
M_(E'V[7_ /H 1_\ @YMO_D2@#H**Y_[=K_\ T (__!S;?_(E'V[7_P#H 1_^
M#FV_^1* .@HKG_MVO_\ 0 C_ /!S;?\ R)1]NU__ * $?_@YMO\ Y$H Z"BN
M?^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_P#D
M2@#H**Y_[=K_ /T (_\ P<VW_P B4?;M?_Z $?\ X.;;_P"1* .@HKG_ +=K
M_P#T (__  <VW_R)1]NU_P#Z $?_ (.;;_Y$H Z"BN?^W:__ - "/_P<VW_R
M)1]NU_\ Z $?_@YMO_D2@#H**Y_[=K__ $ (_P#P<VW_ ,B4?;M?_P"@!'_X
M.;;_ .1* .@HKG_MVO\ _0 C_P#!S;?_ ")1]NU__H 1_P#@YMO_ )$H Z"B
MN?\ MVO_ /0 C_\ !S;?_(E'V[7_ /H 1_\ @YMO_D2@#H**Y_[=K_\ T (_
M_!S;?_(E'V[7_P#H 1_^#FV_^1* .@HKG_MVO_\ 0 C_ /!S;?\ R)1]NU__
M * $?_@YMO\ Y$H Z"BN?^W:_P#] "/_ ,'-M_\ (E'V[7_^@!'_ .#FV_\
MD2@#H**Y_P"W:_\ ] "/_P '-M_\B4?;M?\ ^@!'_P"#FV_^1* .@HKG_MVO
M_P#0 C_\'-M_\B4?;M?_ .@!'_X.;;_Y$H Z"BN?^W:__P! "/\ \'-M_P#(
ME;D+2/%&TL8BE:-&DB#B01N5!=!(H4.%;*[PJAL9 &<4 24444 %%%% !111
M0 5\*_%3]F#XU^)?BG_PG/P]_:,NM \-ZM\5O#OQ/N?!_C+P'X?\8Q?#/5M%
M^!7B?X,WFI?!W4%DTF2&766N_#7BFZ\,?$"'Q;X7M?%4&N^(K..*+5;[P]J/
MW510!\X? W]D[X%?L^?!?X6? ?P'X'TJY\#_  A\&:9X(\*2>++'3/$_B"73
M=/,US<WVL:UJ.GM-?:MK6K7FHZ]K-Q%%:6MQK.IW]S;65G#,MM'\M?#K_@E[
M\'/AU^Q5^S[^QYIWB?Q'<2?LP^)_AK\3/@]\9QHWA+3_ (@>'_C%\(O%L_B_
MP/\ $BYT^QTI/"^IWPDN+OPMXIT>[T]].\6> ]7\0>%-19+36IYXOTTHH ^"
M-8_X)Z_!GXD>'_VNK+X[BX^*WB/]M[P;H/PW^.GB#[*/"MO%\-_!/AO5_#?P
MZ\#?#72K6]U>?P'HW@"7Q#XE\:^'+X:SK7B6+XD^)]<\97&N33MI-CI'<_#W
M]E)-(^,WA#]H/XM?$76/C/\ %KX;?!C4_@/\-_$6KZ!I/ABS\,>#/%.L>%]?
M^(WB&31=(GN[*_\ B;\5=3\#>"&\>^+;<Z5I;V'A/3-)\(^%?"6G7FOV^L_7
MU% !2-T/T/\ *EI&Z'Z'^5 'X<?\$2_^0O\ \%B?^TWW[;G_ *C/P2K]R*_#
M?_@B7_R%_P#@L3_VF^_;<_\ 49^"5?N10 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%?GI_P4C_:S
MD_9=^ ]U'X1NG;XR_%.:X\$?"O3[-&GU.TU"[BCAUCQ=;VB R3?\(O:7D!TU
M%27[3XIU+PY8F*2.YFV?3<&\)9SQWQ1D?"/#]!8C-L^Q]' 82,FXT:7.W*OB
M\3.,9.E@\#AH5L9C:_*U0PE"M6DN6#/F>,^+<FX$X6SSB_B"O]7RC(,!6Q^+
ME&SJU>2T*&$PT&XJKC,=B9T<'@J":=?%UZ-&+O-'Z V=]9ZA$TUC=VUY"DT]
MNTMK<0W,2W%K*\%S TD#R()K>='AGB+"2&5&CD574J+5?S<_L-7WQ7_X)V_M
M->$_V<_C_<I:^"?VIO"7A;Q)H=[]JGN-(\._%7483:PV$UU(LD(UW^V7F^'W
MC%K=_+O-4N?".N23G3Y(9W_I&'-?6^+?AG_Q#/B'"8' Y[AN+>&,\RO#YWPK
MQ=@*"P^!S[+*LIX;$3ITHXC%PH8G 9CA\7@,7AOK56I3E0IUIJ$,32B?(>$7
MB:O$[AW%8['9%BN$>*,DS3$9+Q7PAF%?V^/R#,J4:>)P\*M66'PDZ^&Q^78C
M"8_"8E8:E3J1K5*,7.>&JR"BBBORP_50HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHK\^_B1^W*++]H+6/V;_@IX"M?BE\0OAMXE^&&A
M_&2WUGQ=:^!-.\.77QE^%OQ9^*'P]\,^';^XT[69-5\8:IH/PP.KW3:K8:3X
M0L-,UW2;:7Q'+JEU?0Z$ ?H)17Q'\2OVJ?B]I?P9^'GQ*^"'[&7QM^.GC#QS
MX.L/'6I?":/Q1\(_A9X@\!:7+I]K=ZEX:\5^)OB#XSM?!UQ\1;6]N)="L/!_
MA35/$B:GJUA>S2:UINA+:ZW=\KHO_!2+X$>)_P!C_P#9_P#VPO#EAXSOO#W[
M4>K?"?P3\#OAI?Z;INB?$WQA\6?C+XD7P;X2^%<FG:EJD.AZ7XBL/$D6L)XN
MU2XUM_#/AKP]X7\4>,)]7N/#FCR7LH!^@U%?"&I?\% _@O\ #W0OVM+OX[3R
M?"+Q#^Q+X.T/XD_'C0[J['B:UA^&?C+PSJ_B?P!\0/A_JUC9:=-XZ\/^.?\
MA'?$_@_0+6#1]*\1R_$;PIX@\&3:%'=Q:5=ZOV?P\_:OMM<^,?A+X!?%/X=Z
M_P#!;XK?$KX.:G\=_AEX:\1ZQH^NIXI\#^&-9\,Z#\0=!GU31=NGZ9\3OA9J
M/C;P.?B%X,@FU?3[6Q\7Z3J?A7Q5XMT^T\07&B@'UY2-T/T/\J6D;H?H?Y4
M?AQ_P1+_ .0O_P %B?\ M-]^VY_ZC/P2K]R*_#?_ ((E_P#(7_X+$_\ :;[]
MMS_U&?@E7[D4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
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
MUC_H89?_  5Z;_\ &JWZ* ,#^S-8_P"AAE_\%>F__&J/[,UC_H89?_!7IO\
M\:K?HH P/[,UC_H89?\ P5Z;_P#&J/[,UC_H89?_  5Z;_\ &JWZ* ,#^S-8
M_P"AAE_\%>F__&J/[,UC_H89?_!7IO\ \:K?HH P/[,UC_H89?\ P5Z;_P#&
MJ/[,UC_H89?_  5Z;_\ &JWZ* ,#^S-8_P"AAE_\%>F__&J/[,UC_H89?_!7
MIO\ \:K?HH P/[,UC_H89?\ P5Z;_P#&J/[,UC_H89?_  5Z;_\ &JWZ* ,#
M^S-8_P"AAE_\%>F__&J/[,UC_H89?_!7IO\ \:K?HH P/[,UC_H89?\ P5Z;
M_P#&J/[,UC_H89?_  5Z;_\ &JWZ* ,#^S-8_P"AAE_\%>F__&J/[,UC_H89
M?_!7IO\ \:K?HH P/[,UC_H89?\ P5Z;_P#&J/[,UC_H89?_  5Z;_\ &JWZ
M* ,#^S-8_P"AAE_\%>F__&J/[,UC_H89?_!7IO\ \:K?HH P/[,UC_H89?\
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
M?'&WN)/AI\ ?A7^R]X>FCFFL-7^+>OQ^(_&A"1/+!$FF21W,=G<S;8H=FK>
MX8H;ARTTRQ*Y3_57BCANAXVY'X=>+F4<8< Y9A^(N"LHRKC#-^)>,<FRNG4X
MDX7@LBHYM2P_UC$9MFU/B+AW#9'G%*KDV6YBJCK5ZLW'VE-2_AW@[BW_ (@Y
MFO'_ (68_A7CG.UDO&&8Y[P/E_"?".;9S&?"G%]N(7ERQL*%#)\N60Y_B\[R
MJ4<VS3 6A##TZ7M%"<S]AZ*_-']@3]MS5_CW#XF^"GQVTZ'P3^U-\*+F_P!.
M\;>&9[)-%'B>PTR[%G/XCTK2Q+)#:WNG3206?B?2[*26T@GGLM<TG_B1:Q;)
M9_I=7X-QKP7G_ '$>/X8XCPT*&8X%TYPK8>JL3@,QP6(A&M@<URO&02IX[+,
MPPTZ>)P6*II*I2FE.-.K&I2A_0/!/&F0>('#F XHX;Q,Z^78Y5(3I8BD\-C\
MNQV'FZ..RK-<'-NI@<SR[$1GAL;A*EY4ZL&X2J4I4ZLRBBBOE#ZL**** "BB
MB@ K\5?B[^V?\1/$O_!1]_V$-/\ B1_PSCKFA#X-^,/A) =%\-ZKXD_:5\'^
M/?A%^T!K7Q.\:Z-;>,[>[T[Q5X#^$'C3PCX-\(Z_X-\,6VG^(=.UF#4?$6LZ
M_%87VB+H_P"U5?AW_P %,_#?[+O[5NN^#/@#^TAX)^*W@/7OA7^T)X>N_AI\
M9/"'A7XD>&?BE FL_LZ>-OB+I/Q(_9*^,'@?PM?:S=>,-#\?Z;9^'-3\'>"K
M[6=4O/%_P_@TKQ=X8O=%U;2EN0#Z^^*_A'_@H[\1?AS\+_#/PJ^-?[/'[./Q
M"T_P!IFK_&/XK:Q\$-8^.6G>*_BDD=M9-X1^'/PRO/BIX0L_!7@"\N[75-<U
MSQ'XC\6^-O$5IIVK>'O#OAVTN;ZSUSQ GQ/X _X*=?'7Q)^Q3^Q[XE\9>!_
M?A?]KO\ :J_;4U+]@&-M M]7UKX/:;X[^'?Q?^+'P_\ C#\??">E:IJ>FZ_K
MGP\TWP!\#?B#\0O!GA>^U>&6^\3W'AKP9J&N3:;<3ZQ-FO\ MP_'W]G#]C7]
MD'X/?M<>#?VM-?\ VNOB?\"]%O/CU\3/V>?V2?BY\?=5^&$$-O/I]WKGB"?X
M/>#O$/@;2/CWXJLX8;.ST:.\NM#\*^-XO$?C/5=,O=!T?0/#_C+&^*GA;1?C
MI\"O^"<W[0?[+W[/'QT^''PF_8 _;E^&?B^+X3_$WX/>.?AM\4]4_9ZT[P;X
ML^!GQ4\8>'/A%XKT^3XF:E+X)@^)(^(/_$\TE?&WC_3_  #XVU30[#7-4UO0
M[O60#TK]HC_@J)KW[$2_\% O _Q>TF#XF^,?V5_@!\"_VCO@'JBPV7A>^^-?
MAO\ :6\9^(/@7\/?!'CF#1+6#0M U_0/VE/#R>$-=\4:!I^GZ=>>!/&'AK4[
M?P\NNZ+KDNH_3=A^T1\5O@7^V+^S1^RC\>/%.@?$B/\ :U^"'QC\6^"O'&@>
M%;?P@_AWXY_LYQ^ M<^)_@6TT>QFN(YOAOXN\#>/;CQ-\/9-:NM1\7>&+CP!
MKFE>(O$OB[_A)=.N=$_*C]N_]ASXR_M_:Y_P4[^-7PE\.W4EGJO[(O[&OP#_
M &74U>VD\/)\>_'O[*?[1.L_MN>,QH0\0Q64MKX5U_Q>W@[X,^%_&&J6UIH&
ML>)6\57$4DNA: FK7_WUX@\+:O\ M?\ _!1S]@G]H;P1X=\8Z)\(OV.?@?\
MM5>,O&7B+QGX0USP?<M\7OVGO#OPU^&G@SX-'3?$EMIVI#QEX0\):1\1_$OQ
M+TVWLIAX(N;;PGI.M7,&H^)+*U(!^P--8@ C!/!Z*Q_D#^5.KROQY\#_ (.?
M%#4;76/B/\+O 7CK5;"P&F66H^+/"NCZ]>VFG+/-=+8V]SJ-I<2PVHN;FXG$
M$;+&)IY)-NYV) /R+_X(E@_VO_P6).#@_P#!;[]ML\@C_F6?@B>_L1^8K]R*
M_!+_ ((>>#?"6E/_ ,%=-$TSPUH>GZ/H7_!:S]M'1M%TRSTVUM[#2M)L/"WP
M2CLM-T^UBB6&TLK2,E+>VA1(HE)5$4<5^Z/_  C/AW_H":7_ . 5O_\ &Z -
MRBL/_A&?#O\ T!-+_P# *W_^-T?\(SX=_P"@)I?_ (!6_P#\;H W**P_^$9\
M._\ 0$TO_P  K?\ ^-T?\(SX=_Z FE_^ 5O_ /&Z -RBL/\ X1GP[_T!-+_\
M K?_ .-T?\(SX=_Z FE_^ 5O_P#&Z -RBL/_ (1GP[_T!-+_ / *W_\ C='_
M  C/AW_H":7_ . 5O_\ &Z -RBL/_A&?#O\ T!-+_P# *W_^-T?\(SX=_P"@
M)I?_ (!6_P#\;H W**P_^$9\._\ 0$TO_P  K?\ ^-T?\(SX=_Z FE_^ 5O_
M /&Z -RBL/\ X1GP[_T!-+_\ K?_ .-T?\(SX=_Z FE_^ 5O_P#&Z -RBL/_
M (1GP[_T!-+_ / *W_\ C='_  C/AW_H":7_ . 5O_\ &Z -RBL/_A&?#O\
MT!-+_P# *W_^-T?\(SX=_P"@)I?_ (!6_P#\;H W**P_^$9\._\ 0$TO_P
MK?\ ^-T?\(SX=_Z FE_^ 5O_ /&Z -RBL/\ X1GP[_T!-+_\ K?_ .-T?\(S
MX=_Z FE_^ 5O_P#&Z -RBL/_ (1GP[_T!-+_ / *W_\ C='_  C/AW_H":7_
M . 5O_\ &Z -RBL/_A&?#O\ T!-+_P# *W_^-T?\(SX=_P"@)I?_ (!6_P#\
M;H W**P_^$9\._\ 0$TO_P  K?\ ^-T?\(SX=_Z FE_^ 5O_ /&Z -RBL/\
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
MR22>W).2>..2>.*  /7OU)/7ZDX'L.*6B@ I&Z'Z'^5+2-T/T/\ *@#\./\
M@B7_ ,A?_@L3_P!IOOVW/_49^"5?N17X;_\ !$O_ )"__!8G_M-]^VY_ZC/P
M2K]R* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***"0/\_P">
M/?I0 44 @]"#].:* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HI,CU
M'YUY9\4/CC\'_@KI3:S\6/B5X,\ 6/E-+"?$^OV&F7=ZJG!33=,EF.IZI,3D
M+!IME=3L>%C8\5V9?E^/S;%T<!E>!Q>98[$S5/#X+ 8:MC,77J/:%'#X>%2M
M5F^D80D_(X\?F. RK"5L?FF.P>6X'#0]IB,;C\31P>$H4]/?K8C$3IT:4%=7
ME.<8J^K/5*.G6OB7PU_P4=_8>\62B+2?VD_AQ;N7V >([S4_!V6_>=_%NEZ(
MNT^6V'W;3E.<R1A_F#]KG_@H7J5UKNE?LV?L-?8OC+^T)X]B@AA\4^#YM)\4
M^$/ &FW:^9<:D-4BFN]!U#7;2S(O+F>\E?PSX0L7_M?Q+<R3Q0:-<_I&1>"O
MB9G>?X?A^KPCG?#U:=.MB\=F/%>69APYD^297A(JKC\XSG,,TPM"E@<MR^B_
M:XFM/FF_=HT*5;$U:-&I^;Y]XU^&61Y!B.(*7%V2<14H5*.$P&6\)YGE_$><
MYWFF+DZ> R?)<NRO%5ZV.S+'UE[+#48<L$U.M7JT</1K5J?UM^T/^WC^R_\
MLQ-=Z=\3/B3I[^+K2)9#\/?"B?\ "3^.7:6,2V\-SHUA)Y.AM=1,DMM-XFOM
M$M)8W21;@HZL?A(?M3?\%$/VP)%L_P!E/X$VO[//PNU.-$B^-7QNB3^VI[26
M3 U70-.O;6:P=);9_P!U%HGA;QLBNK2)KELQ1T^B/V.?^"<WPY^ .G2^.?BQ
M#HWQK_:'\3ZC+XD\6_$KQ78+X@&E:Y?.;FZMO"#:^EW<PF*ZEGDOO%5S''XB
M\0WDDEY</I]E]BTBQ_1^ZN[2QMYKR]N(+.UMHVEN+NZE2WMX(4!9Y)IYF2.*
M)!DL[NJJ.]?59AQ5X->&53%4.$.&L+XEYOED9+$<>^(DYQX0A5P]-/%8[(N!
M<.\)1J9?&4:E3#8GBW,LQ4J4(UJ^64X2<%\A@N&/&+Q*P]#&<:\45_"[(\<E
M5I\"^'WLO];%AZL^:AA>(./<3];J4,=[-PABZ'"F7Y;[.<ITJ.:5)155_E'\
M*_\ @E)X /B>U^*'[6'Q)\:_M6?%#=#=3-XVU'4(/ EG.N)A:0>'I;Z\U#5K
M"UN<&*RU74TT&9(XPWAF!"T%?K!!!#;0Q6]O%'!!!&D4,,*+%%%%&H2.**-
MJ1QQHJI'&BJB(JHJA0 /BWXG_MN_"WP5.]CHNN:!JDT9=)-0N]1<V:R("<06
M&FI<ZE=QX!S-(MC Y*K!).'!KY6O/VSO%/Q(O/[-\%V/Q0\<.UPO_$J^%?@^
MYLX@BR!O^0O(6O5 '*?:!+&^ 9% R*_B3Q(^FAQ'XEYRL%POPEXK>/&896JF
M!RFMPGP[A>&/";*.:48RPV4\:<25>%/#G#9:_8Q5:KP=5SB,_8QC['$5J7)'
M]ZX%\$N$?#O 5Z>5T>'N#:>8U(8G-,1C<9B,UXKSBM"+Y<3F\^;-.(\QQ2]I
M-TY9UB(RA[6:IRIPF[_KG?:EIVF0FXU&^L["!02TU[<P6L0 SDF2=XUQQZUX
MYKGQ]\%6$_\ 9^@+J7C+57)6*S\/VLDT3R XVF[D55D4_P!^SBO,#G%? =OJ
MOQJU9FEM/V,OB9K^I2H4BO\ XE_$ZUT^V6YF+/#/<V5OI^B2M;A<-<Q'4%:.
M7]VTR9Y],T&U_;SNX([7PM\,/V?/@G:2HBFYN[N;7=6564DO</87VNB>13U2
MX@9U8(AW .Q_/L1+Z67&_)0P^'\*? C*:VE?'RQV:>,G'5&"Y7_LF 67<%<$
MY=B9+FC[7$8[BS"TWJL/745S_<07!.7WE.6=\25XVY*2IT,ARV3Z^TJ^VS#,
M:L%_+&G@IO\ GC?3Z9B\0_'WQ/'&VF>%/#G@NUF.5N=?N9;F_523\WV-B9HR
MH(8)/IBDD>GRTU]$_:#T)O[1LO%?A_Q>[_/=:->V,=A%N!/[NRD\BR&S' (O
M+/)QNC;&3X.O[.O[7OBYC)\0/VOKW0%88>Q^&7A*WTR( DADBOXV\.3#*G D
M:V=@2"00@#);?L'RV1DO;3]IG]HFUUV^D,FKZM;>,(XCJ3%54-);B,NK@1PC
M?+=7+E(E0G !"E]&:>/I0Q/$7CW](K..)*:A4P_$6#\2'PG3R_%J*52OE_"G
M".4Y+P1.G4]Z#PN=<.9W2=";I5O;7E.37%RI-PPO#7"M#"2NIX6IE*QKJP^S
M"KC<=7Q&8III2Y\/B\/+F7,N6R2]X_X6K\4I(QID7P<U8:^&\N2XDGG705.!
MB47)MDB*,3D*=1$>T<73'('GGB'Q7XADEEC^)OQW^''PIME4BXT*Q\4:'::J
MD3LBLKJ^IP76X%E0L-1N%&YALV$EN-E_88U76C'IOC3]J']H'Q3X3B/[OP[-
MXE%H2I8LR7%])+?QW )Q\S:>KK@[6 .!W_A?]@_]E[PRBEOAK;>);U6W/J/B
M[5=7\07,K!=NZ2&XO(].RV22$L$7).!C &<OHV9OQ$HX;Q2\??&?Q#R:@HT*
M/#N%SG)_#3*,9@H:1H\05/"[)N$L[S_$327UJMB<YHX3$N[>74TVG7^MM#"/
MGR;AGA_*L1+WI8N>'Q&;UX5':\L+'.<1C<-A8IZPC##RG#I59PMC\1_V)/"-
MQYVM_%[P9XHU03,DM]J^O2:\&N(AF1S;:9;36+(Q)*R7"W 8_<F<BNHN/V[O
MV0_#U@1I?Q)TZ>.-MJ:;X>\)^)C)G!YCMTT*TMU4;<;S(B] "<BO:]*_9S^
MFBH(]/\ @U\,H5$0A_>>"M NG,88N%:2\LKB1OF).YF+8XW;0!796GPV^'E@
M_F6/@/P992>7Y6^T\+:%;OY65/E[H=/0^7E5.S.W*KQP,?L' ?A+X9>%^$>"
M\/>!.%^$:4T_;U<DR?!X3'8V4G>57,LSC2>8YGB)O6IB<QQ6*Q%1V<ZLFKG@
MYGG>;YS4]IFF98S'27PQQ%>I4I4TM$J5%R]E1BND*4(06RBD?%LO[=MWXP>2
MU^!?[/?Q=^*$K*R6^K7.D'PYX=,G*K,]^L.K,ML&*L3<&Q<J<,T1YJ3_ (2K
M_@HAXQ4#3OAO\%OA7:S@F*X\1ZY<>(-4MT?!5I(M/U'5(?-C'RE)--3+9+1;
M0 ?T 2..)%CC14C151(T4+&B* %5$4!%50  %   P !3Z_0SRSX'7X8?M_7J
M"*__ &E/AEIB3$F=M(^&]E=36HW%U6SEN- LS* 0J9E\IC&6#,S#<W-7/[$?
MQ%^*7B&UU']I3]H+7_B-X?TOR7L/"WAK3?\ A%-/FF4'?)/''+)IU@2519;G
M3M)&KW"D[=5L]B"OT=HH X3P9\,?A]\//#R^%/!?A#0?#V@!0)=/L=/@"WK@
M$>?J<\RRW.JW;@D27FI375U)_'*:YCQ3^SY\#_&B2+XF^$_@'5'EW>9=/X8T
MNUOV+D%C_:-A;VE\K$C.Y;@,"2002<^Q44 ?"'B+_@G5^SGJK33>';+QC\/K
MB4$%_"'BV_6%E9]Q1[37EUN%HBN5\M=B@8[J*XX?\$S_ (3;@6^)'QC9<C*_
M\)!H(W+D;ES_ ,(Z<;ER,XX)SCC%?I!11^FJ]>X'SK\*OV4O@1\'1!<>$? >
MF2ZU"!_Q4_B%?^$B\1-*',GGPZAJ:RIITC-C<-)MM/C.!E.*^B<?7\S_ (TM
M% "8 Y &?7 I:** "BBB@#&U[PYX>\4Z>VD^)M"T;Q%I;RQSOINNZ99:OI[S
M0DF&9[/4(+BW:6(DF*0Q[XR2489.>>M_A=\-+,*+3X>^!K4)$T""V\)>'X D
M+QF)H4$>G+MB:(F-HQA3&2A!4D5W5% 'YW^/_P!EWQU\'?$>H?%_]C_4HM U
M64&[\4_!F_D+^"_&4,1WR6^D6T\T=KI]TREQ:Z?+-:I;.Y_L'5-%P;.Z^]?#
M-]JNI^'- U+7-,.BZUJ&BZ5?:OHYD\TZ3J=W86]Q?Z89?^6IL+N2:T,G\?D[
MN];=% !1110 4444 %%%% !69J&M:/I,NF0:IJNG:;-K6HKH^C0W][;6DNK:
MO):7FH)I6F1W$D;:AJ;V&GW]\EA:":[>SL;NY6$PVTSIIU_-C_P4#^(-W^RW
M^WOH/Q8_;J\(MXV_X)X?&/Q%\"O#_@#XZWVE1^,_AU^R1XC\+?"[X\>#?B%\
M.OBYX,%OJ&I^$/#_ ,:?%GCSP]XXM/C=HNDBTM'TR/1_&FKVND^#-(GT( _I
M-R,9YQQV.>?;&?KQQWQ@T$X&>W7@$_D!DG\*_"K_ (+%^&=(\"_\$*/VEM.^
M&WQ'\:ZGHWPX_9?\.S_#CXC:!\4/%I\0:WHN@7?A&V\+ZS=^/_#_ (G75O&U
MEJ_A^2!;V]U?7-<L?%]C=/=:RVL)>O++[-_P4_\ BEXJT2\_X)Z?LX>&M7U/
M0-!_;!_;K^$WP<^+=WH]U<:9?ZI\$/"7@CQU\9_B!X$MM5L+JRU+3;3XE-\.
MM!\!>)WL;F"XO? >N>+]'CE0ZG\P!^MRNCJ&1E964,K*0596&596'#*PY5@2
MI'0FA71\[6!QD''8@X*GT93PRGYE. P&17\J_P#P45_:V^+O[!_BW_@J5\'?
MV?\ 7;GPCHNN_L7_ +$'QS^"\.D1Q6FG_L_?%G]I_P#:HUS]ACXA^(_AIIZ+
M'IV@)=6,O@WXK:=HEM]FT&Q^(WA[5/$L&FG4/$_B.>\_1'QI<VG[('_!33_@
MG%\%O@U;SZ!\*OVL?@3^US\)?B7X+%[?7>FZKXC_ &8_"'PU^*WPF^+6IR74
M\]QJGQ)LM/O/B)X/\4>--3EG\0^-M-\:0MXMU36+K0/#\EB ?LS2-T/T/\J6
MO*_'GQ=\/_#W4;72M7\.?%/69[VP%_%<>!/@]\3_ (BZ;%$UQ-;"&[U7P/X4
MU[3K*^#P.[:?=W4-ZMN\%R8!!/#)( ?D7_P1+_Y"_P#P6)_[3??MN?\ J,_!
M*OW(K^2_]A[]O2#]D?Q#_P %+-*L?@M\1OBCJGQC_P""K'[8_P :]'?3=.OO
M#%IX7T/6-3\%>!;7P[XVL=<TD>(= \8V]YX$OM6U#0;[1[6:RTK6-!-S)%<W
M4T4/TM>_\%9OCEXLU<6NK?L]>/\ 1/#%Y<11_8OAQJHU3Q5%!(J)+&+)_#\%
M[<R."3'&VH6*.SD,X "#UN). _&G 9)A\TX.\'<YX^Q68X'"8[)\MPO'G@_P
M15S*GF%.%; SH2\3/$3@VOBJ->C5IUG+*,)F^)A1G[2.#JN,H+\VEXR>%>%S
M3'97FG%N)P53*L;BL!FU?"<$^(7$6%RW$8*K4H8RGC,7PQPIG&"PKH5Z4Z,Y
MXO%8:BJD;.LE>2_HCN=?T*SNUL+O6M)M;]P&2RN=2LX+MU;H5MI9TF8'L0F#
MVK55E=59&5U895E(96!Z$,,@@]B#SVK^<?\ X>8_ #1M8?P]XG_9X^)&EW\D
MCI>7'Q7\5WOA?Q-]H4$%S9Z5H%U8Z>HD"F8W1G9<[99B I/U#X=_:2\.76C6
MOBCPS\-_VF_"FBWJ?:+#Q!X/6R^(7@Z>*/RI6>/4-+FTB&YCAAD\V95O99(@
MJQRQ[W=4_G[B>A]-_P -X4<P\1/HK\.4,!F49XC 95D7BW6IY]0I*4FL%''\
M3\!9#P-Q%CXTXWG6R?C"E@>=J,*LX6K2_1N%.,O!/C]5J?!/BCALXKX.T<:H
M9?AZTJ$GRKVF+R[!YKB,\RJDW*T8YAE4*KLTX\UXK]F:*_)+3?\ @H//X<D>
MVU2V\5:U!$3&J^)?A[?Z-J8R3Y(D>SNH@LTR%9E2<7+-&"!)G!K+\2_\%!_'
M-U;W$VA>"O$MC;^6_EW;>%XM#L=N)/F;5O$ES?1PH NYIO)!C4,^T>6P/C8#
MQXS?,</2I8?Z/OTA'Q%.K+#SX9J<%Y'A:T:T>2/-2XDQO%F&X&Q>%J5)\M'$
M83BFNJD$ZKIP@G;ZC$</8;"J=:MQ3PM# P@JCQ\LQQ'LE#KSX:."ECZ<HK64
M:F$C;;F;/UIUKQ!HGARS:_UW5;+2K503YMY.D1D(&2D$9/FW$I'W88$DE8\*
MA-<SX7^)_@;Q>5BT77[1[MB0-/O"VGZ@Q#%?W=I>+#),#PP, E&& ;:P*C^=
M7QI_P4JT#0]6GFU/0O#_ (P\3[VA6+7_ !%KGC@QW!(VPC3_  [+HNF2L"=@
MM)];>VWX1K52&C.KHWQ]_;]^/RV=U\+?V/K(Z=<.L5GXQUWX>7WPZT4(0%CG
M%W<Z]HUI?6]JI5@UM<7[JBJ%#,=A^SRGPR_:&\58>GQSAO!7PB\+N"::;H\)
M^,_'^,X:S[.<&Y1G/&U_$2.&I<%9%C8TJ:6#RS)LMX]PM26(K+%9K2E2I,_,
M\V\:/H[9+BY\/T^.\YXTXD3498;PXR/$<9XG#U_ACAWD.0TLRS*TIM\];-*V
M2<J@FJ:BY-?TF7-U:V4$EU>7,%I;1+NEN+J:.W@B7^])+*R(@]V8"N!C^+GP
MTEOVTU/&FA?:E;82]UY=H6SC:FH2(NGR'/&([IN>.O%?BC%^S)_P50^(1CB\
M>?'WX<_#C282JVNGZ1X;\1^-I;&%@T@BLH'\&7R@0F00_OM<#'RP1,X17ET=
M3_X)R_M<6=B+_P /?MX^*=3\1.Q:?3-?^$/BO3O##DH@40-:7VN?9?NE'==!
M.Y3O149G4_;9IX=>/>+Q6$CEWB=]#?@R"ITW6P.=<4^/7B1BL;BG&$JN!J9M
MPCX-\-\/\/T(SE.E'.*&8<7T9*G&JL!RU;4O"H^*5!TY5J/@KX\YKATW*>(>
M%\+>&:M*CS)*K0RK.O$:MFV/K<K4W@JV%RJLKN#FIQM+]V8;VSN+<7=O=VT]
MJR[Q<PSQ2VY7 .X3(S1%<$'.[&#GI7GWB+XN_#[PSN2^\16EW=*6'V'1]VKW
M09 24D6Q$T5NV1M'VJ6!=Q )'./P-UK]G;_@K%X1AN],T^_\%?$[27*O]I\/
M:X_AVYO51EB4-::_H?A&5)2C^:PDM\*(W82M*$#>5#X6_P#!0B*ZN+?Q]^RO
M\6/&*&1[>V3PW\7='TG39)TDPTMPXD\0_P"@2JQV/$M@V#N6954JO=FO@K]*
MK.\%#!\)\7?0XR;&SA"%7/Z/C56XXIWE;VN(PO"G$V7>"&84'"%ZD*>/S5RI
M2:C5H5HTY.JJ'C;X=8*;J9[P5X_8**N_J>*\(^(H<K3M&G4S3A?#\<9=4YY>
MZIX:I*G)6E&I'FB?N[K/[2TTDBKH.CZ!HMCYBC^V?B'XGT?PY9.A8+D1W>IZ
M?$I)( \O4+B3)P(2>*6U^,7CW5WB&F^(_@(?.4&!+?QWIM^;O(9R]O\ 9=>N
M&=5123@ ;?F&0&Q^,/AS]E+]M_Q!)!=VG[*GP"\"(VQOM'QA\:>/OB'J@0K$
MQ%Q::'XBU"Q) ,B.BZ(F SHBJ8T=NBOO^"<O[9'B2.87WB7]ECP2=0E:YG?P
MC\,OB?/>:.WF&<6>F/=>$)H)+8LJVC%Y7/V1W*NT@&[Y;#?0FX[Q$77\1OIW
MNIG=>:GC*'!W&7!W#.08505H8?+\GX!\/.-J^&ITM9.5;BK-\7B7&,:V*K-N
MG/O?TALNE>/#_P!'KQ'Q>%BK4*V/X)Q="O7YK-3G5XOXGX9J-SO;W\MPD()\
MRIPBG)?M)9>-_C;)&CP^$_ OB:(J7$OA_P 36P,T:R-&SQ[]5FRJL54LL1"[
M2&&]L+PGCO\ :#\7^!K,W'C%/AM\,HV0,C>,/%5O/J=QNZ-IVA65X^M7IZ!4
MMM*N\L, G.#^%:>'O$?[*UW_ &-^VU^S3\1[OP3;ZC':1?M%_ +Q)KEMHLME
M/\D;ZQH=W!'H05WQ.(9#X'U@M$\9T;4I2H:MXKMO"'[4'CR3X(_L!>%?&OC@
M7UO97?Q+_:8^*<OB.Y3PCHUZ(VEM-&L5TO3IM%CCB$EE<ZOJ.BW_ (OUNX6?
M2_!]C;6\-QKS^_AOV>'C+BL;0C+Z3_C(O#%X6OCLQ\0\'QMX38_@?#93A?8*
MOC:O'>$\,GQ+@:U.-6%.GDE7$X3B?%XB4:=+"4Y>UG'PL5]+?PSP^!JTX\$T
M_P#7_P"L4<#@?##&<-<29=X@8W-L4JGU; X?AK%YLL#B</4=*4ZV>8:KB^'<
M+0A*K5S"5Z<*GUU\5_\ @KYHWP]>[TOP-K"_%_QJMW-I]OX<L_!MWH.@VUY&
M98]USK=U%:ZA+;QS1JDMG96=SJK;]KPVJ@SK\HVW_!1G_@H59:R?B]=>(_A3
MJ>B7-\_G?L\'0[.%;/105(>VE@M4\313;5=HIW\?:CK:L3-<:1-;LMBO[2?L
MF?L7_ 3]DSPG'IWASPO?>+?'NHVAA\6_%#Q+X)O;CQ/K\DZK]LL[(36%VGAS
MPTSJHM_#FF3?9RJ)-JEQJNH&6^D^ISX=^'!NA?'X>Z:;T8Q>'X=#[4,)Y0Q<
M?V'YPQ%^['S\)\GW>*_6.$J?A-X$8>MPSX499Q-XJX2OFF&K\3<>_2*XCSSQ
M,SOBK!86G.CB,JX9RC/<;/#>'.0XVI4JXNGB<C]CQ9)O"JOFN%IX6&!A\SB.
M#O%?Q/<.(/$SCG%^'F,6'E4R#@CP9^I<,Y7POB:CC.AB.(,[AA<3B..\TP\%
M"CBL/CJ=/AEU%B?J^7XB%>&(C^/FD?\ !<[X+R>![K4/$?PM\:Z%\1[")+>;
MP1#=VVI:?>ZF596&G^(_LMHD-D)@BN=9L=,OHE=U%K<-&GG_ "9XO^.__!2?
M]L;7M/U_0-&^+?P'^&FCWG]K>']"^$?A7QG::O<36^][2^UC6/*TW4O%!1HP
M98M2O]+\..L;FQ\/SSDRO_0KJ7PO^!VL>(]+\8:O\&?"&J>+-$>&31_$VH?"
M6RO-?TN2VD:6U?3]7G\.O?6KVLS--;-#.K6\S-+"8Y"6KU :]:#_ )<]=_'0
M-;/\[&OI<'Q[P-P9B,YSSPVX/S;#\4\1*KRXSQ#S3(..,H\.\-B(<M;*O#?)
M8<*Y-@JD'-*5+/N/J7&'$5"C*I@Z.,A1K5I5>>7A9XA<6/"97XI>)CS?A7*'
M35+*N!,MQ_ ..XRJ49\]+'\=YM@LYQF.YE&RGD_">(X>RFI6IT\54A.<(TX_
MS*7?QT_X*E?#QYTU75/%OQ)T>U7,<7C3X?\ B?PCJLEN[8MI)I-"L_#L:3R,
M  DFK7^YAY8E?=D]Z_\ P5 ^/'PST;2)OBO\'/C/\/+V[1HQK'B2VU.?P5?&
M-Q"EQI=UXD\-17LT+N7#V\5Q?,FU!%=7&0U?T7?V]:?\^>N_^"#7/_D*L[5I
M_#VO:;>:/KF@7FLZ3J,$EKJ&EZMX2U+4M-OK:4;9;>\L+W39[6Z@D7*R13Q.
MCJ2"N#7Y!GW"?@#XB9W_ &]XG>!N62SNI7A7K<6>#?'OB/\ 1_XIE6=3GJUZ
MT?#+B?*>$,PE*3E4=''<)5:<ZDZC<H.I*9]=0X/\1N%</[/PY\9>*<!0IP<(
M</\ B-EV2^+/#<X125.@I\4X1\6X2*453]MA>+%4A"UHRY5%_EK\$/\ @J!I
M.O:'H^L_$_PQJ:^%M;N+JUT_XA>'+&6ZTIKJT=4O+.YM#;6#/=:>[Q)>V-K%
M_:=HLL4DMG,LT,DOZ0>#_CM\&_'UI;7GA+XE^#-86Z4-':QZ_I]KJB9ZI<Z/
M?S6NJVDJ\AH;FSBD4@@KD5^'/QB^&7B?_@FC\5;SXT?"#PEKWQ"_8G^)&I0P
M_&SX+:SHES?:3X%FNIDM+:YLU\16\EE'!$]W_P 47XANP#:E#X$\57S:?>Z+
MJ=?<.C_LY?L5_M+>!M'^*'PATR>WT7Q+;F[L=5\(Z9XD:P@N0SQWFG:CH2Y;
M1]5TV[62TO\ 2PUC+87$#1F!H_+>3VO$7PJJ^$G#N6\8^&-3C?Q=\)>()5(<
M-U,=GF6YGQED6/I1=3%<&<09EQ=FF72GQ/@&YU*U3B3C"K2S;".EF61XEX!S
MPF#V\./$VMQGFF9\%<=X+*>"O%+AJG3J9_E.&I8BGD><9=5<:>%XOX6]A2JU
M,5PSF,K1A'"X*6*R?&.>5YO!8N%/$8G[V^(?Q=^&OPIT===^('C+1/#6GR('
MM?MMV)+W4,YPFEZ7:"XU+5)#@G986EP0 68JH+#XVB_;I\2^-I-4N?@E^S=\
M0OB-X7T_$8\9ZCJ5IX1T-IE:3SGEENK"_LX+18XF=7FU:.\3)%Y969"A_$_^
M&.?AQ\)KBY\=>,=>\,6?AS0D22/6OBN=;?PQID$3>:'EL->T>RTR39L)6QU.
MXU"V8@^5 S[7KSS7OV_/V-(=8T[PEXV_::OO$7A[1Q K67P]^%?BF+P991Q[
MHTMK:]T[1K6Q,=N8U19]/T.]B2"2+[%,DCN8_P"=\%QA]('CZEC\#X)?0Y\?
MN/<ZPS5!8S.<OX1X7X.P&(E*G&=7.<ZH\69YG$,)A>>523RGAS-:N/5+DRU8
MB-:C7E^EY_GWAAP0\+4\0?%WP_X1H8JTJ%'&YO)9EBHN]OJF$Q5#!4JCE;EE
M*KBJ,*#=Z\H<LHKZ-TW]L?\ :2\0ZB+?P[^RDVIK"%:YL+?QVMUJ6Q7VRRH\
M.E);Q0-O01SS1F(L&(>08 C\1_MF_M%>&8)+[Q+^REXU\*Z7:[7O-2.G:QXC
MM(8P,NTEY;0:=:1QX60L[2 1H%9G4LN;?P^_X*7_ /!.RUL[?1/#'QJT'PW'
M+<K;K!J_@[Q]HC7$NU2+O4-2U+PLL+*Q<JU_J-ZJAPRM(B@5]X^&_B1X,\9:
M/:>(?!^KIXKT"_3S++7/#,%SKND72X4DPZCI,5U:.P#*7C\[S$R-Z*2!7WV)
M\(O'+ <(X/!_2 R_,N#>)\=4E5E7X"R;C_PZRS".5.-\!E^:<09KBLSSR6&G
M&;>82AEE+$Q:4LFPZC+VGGY)XB>''$V.KU/#OB;A[BK"8:,74A3SWA_B7$*+
MDK5L5A\J<Z>"52\4J4G5<6],1.ZMX!\%?VT?@O\ &(6NF1^(;/PMXMFVQCP]
MXAG336O9\8:/2KN[,5K>RELXLXYFNATC6<*9#]73W]E:IYES>6MO&5#!Y[B&
M)"I!8,&D=5VE59@<X*J2#@&OESXJ?LT_L]?& RW7BGX<WMEK4S([^)?"_A[6
M?#FO2,K[R;J[T[3HX-2WC*,=4M+XA<&,HZHR_*_Q(_9,_8R^$OAB?QA\2?B3
M\4/AOX:T]!%<ZYX@\8WNFP74F,PVEO'J/ANXFO[PD,+;3=&MI;J1F81VK\!>
MO)LEXLIX6ED.6X_&<69U.5+#Y3C<TRW#5,RQ]2I)0AA\;0X<I9?3S#'N;:IO
M+<DRRG4I^RI.G4Q"J5ZOJ9AF&5X2E7S/,*F%RC+\-3G7QM6>)]A@L)1IKFJ5
MY8C'5)0PV'A"[G+$8N?(U*3E&"27VA\1?VI_@A\,EFCU_P <:3<:A"&_XE>D
MW,6HW98 D*WD.8E.000)&D'_ #S)(!^>O#/_  4G^ .J7<MOXBFUGPO$;UX+
M2^DTV]U.TEM0^U+N<6=J+F%#SO,5O<;""&52"!^=.D_M'?\ !-'P/JTUA\*?
MA9\;OVN/&B3,UG]E\&:WXCMIYQO"HUEK\?AJR:'<JGSO^$1U"4J1(#(5->]Z
M9_P4S^"_AK5;'P3^U'^R)\2/V9=(OX8K?PU=>,_AW;:[X8FTB5_,B:ZL%\+Z
M'J5C",F5[71=%U^"!U?S'5E9A^AX+Z*OTGL96I9UF]3BO"U\/2>)H\&Y%PYP
MAPU',L+&*E+VO"W%M/BWQ&S6I!22K8K(LPR^'+:I' X5R:/RFO\ 21\!J%3Z
MG1XOX>KT9UHX:IGKQ>;9GD^$KSERQC7XHRJCA^$L IM-4XYAB_>E>*JU.4^Y
M=5_;S_97TRS6[C^*%OJK2 F.ST?P[XIOKXX+ B2W_L:'[.V1PMS)"S JR@HP
M:O+Y/^"E/P9?4XX=.\%_%K5M%\B5Y]<LO"^GA4F5PL20Z;/K4=Y/!)D*UR3#
MY,A5'A.X&O ?C%^U[^P;\-_#^C^(/@3X"\!?'[XP?$67['\-/A[\._#QO[K5
M]:EN#:6LVN6Z:=))X;L8KT^7)8C2AX@U&5'@TW2W1;F]M///AW_P3G\0_M#3
M7GQH_;S\3^/E^(_B2UM[?PU\+?A5'J'A/PO\)O"J2/=V7AF*?2M*U"U:X1IV
M:?2=)GEL;*9II]2U?Q#KES=WL'K9#X6<;TLIQ'$GBW4R'P=X>G7Q&"R!59YW
MQIQAQ5C\-75'$TLKX)Q63\ XC#Y;E[4X9KGV.SBEEV#Q*6"P[S#'.6%AAG/B
MWEV+SBCPUX597/Q4SZG1H8W.ZV$S7!9#PCPSEV)HJMA:F<<7T8<287^T\PC*
M$\KR/ X#&9ABL.Y8W$PP."C'$5/L#4?^"G/[-UAIE[>E/'?VVU0;=)N_#]AI
MMP\Y+J\$M]>:XNE6AMG3;=/<7BA,_N5N&5D7\\/C1_P6!U>Z-W)X$U+PEX'T
MO3V$EOIUM<IXQ\7:S(I1%MVN4AM]$MRQ?SFBB:&W@C5S)J-RT81_KFQ_X)(?
ML(VLMI+=^ /BKK+6[K)<#5?%OQ(9=38!MYOQ8K8$F5V\R7[(;/<XXVH71OKG
MX<_LM?LH?"58S\/_ -GGP;H-U$5\O56^&MUK&O+M.Y<^(-?TW5=;<@\Y;4"<
MC/6O;QW#_P!'.6&A0SK.?%OCJC[2E6JY9E.7Y5X8X3$^R:YL-C,XP_%'%V95
M,+7?-[2A3P$83I2M/][&+AR?VA](;,7.&!R7PHX&4Z<Z:S#'YUQ#XB8RBZD;
M1KX;*H<.\%8%5J%TXO$9C6@ZD6N1T[J7XY?#+6?^"KO[;]FUSX9\9ZQ^SY\(
MKZ(/%X_U^TD\(:IKEHXF:(>'/[+TZ/Q3JT<S# O]#M]'TM4 27Q)<,/*D]-\
M.?\ !$U+_5'\0_%;XZW'CCQ-=D3:CK&J:%KGB.YNK@H[2-)/K'B>SGNE\XK@
MZA)=EHRV5#@9_=,:_:#I9:Y_X3^M?E_QX]!V':C^W[3_ )\]<_\ "?UK_P"0
M:WJ>+^:Y%EE7ACPFRC+O!K@Z<JCGD_ U3$X?.LRE4C2ISQ/$O&U><N*^(<?5
MIT:=.O6Q.8T<)4A&,(8"E&*B<^6>!G#F*QE//_$O'X_Q>XM4XU7FW'$*&*R7
M 5$Y2]EP[P52BN%<AP<)RE.C3P^75\93E)RECZDI.3_&[Q?_ ,$B=+-EO\,^
M+O WB&>VB MM+\7_  MT:R241QM&MO\ VMI-Y,\:E"%C\VT,:MY99E,*2"A\
M"/V+OVE_@YJGB%/A#;_"[X+W&N[+'Q#XJTKPE8OJFHV5O<3W,=G%J>M6VO:C
M%I2W$BS+IF@-;:5+)#9SR1O/9P2C]H/[?M/^?/7/_"?UK_Y!H_M^T_Y\M<_\
M)_6O_D&OQ;.\;XCYC3I99E'B]Q[PMPO7:>>\)915R'%Y'G\Z598BA6QN&S_(
M\Y2K0K1ASRC>$H14Z-*AC%'&1_5<%PGP)@\?3SC_ %!X/K9]A>9Y?GSR;#X?
M-\O]I3=&JL-CL&L-B(*=&4J;Y:D6XRE"4I4I2IOX1L_V0?CWJ#OJ/BG]M+XK
M#4[F/%Q%X8MKC2["-]BIM@C?Q MLL(4R*RP:;9F4E)2$<,IK3?\ !/BP\074
M ^(7[0'QK\>:1$\9DTG5M?<1SQ1 LL+37%QJ*1@2EF62.U\U%8JK*X64?>_]
MOVG_ #YZY_X3^M?_ "#1_;]I_P ^>N?^$_K7_P @USULGP5>C3H26)HQIU8U
MYRP&,Q643Q->*@I5<6\HK8!8EU?9Q]M3K1E1J)<DJ;I^X>_&O4C*4ERR;BXK
MVM.%=1B[V4/;QJ.'+=\KBU*.Z=]3Y_\ !W[&W[-7@AK>;2OA/X;O[RW*L+_Q
M.MWXLNGD7I*W_"0W.H6ROW_=6T2!N505]'V&G:?I=K%8Z996FG64 "PVEA;0
MV=K$H  6.WMDBA10   J   #H*H?V_:?\^>N?^$_K7_R#1_;]I_SYZY_X3^M
M?_(->HVVVV[M[MZM^KW9B;>!Z#\A2UA_V_:?\^>N?^$_K7_R#1_;]I_SYZY_
MX3^M?_(- &Y16'_;]I_SYZY_X3^M?_(-']OVG_/GKG_A/ZU_\@T ;E%8?]OV
MG_/GKG_A/ZU_\@T?V_:?\^>N?^$_K7_R#0!N45A_V_:?\^>N?^$_K7_R#1_;
M]I_SYZY_X3^M?_(- &Y16'_;]I_SYZY_X3^M?_(-']OVG_/GKG_A/ZU_\@T
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
MT?\ P2X_\1'_ &F/_HD:_9^B@#\8/^%=_P#!?/\ Z.C_ ."7'_B(_P"TQ_\
M1(T?\*[_ ."^?_1T?_!+C_Q$?]IC_P"B1K]GZ* /Q@_X5W_P7S_Z.C_X)<?^
M(C_M,?\ T2-'_"N_^"^?_1T?_!+C_P 1'_:8_P#HD:_9^B@#\8/^%=_\%\_^
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(UC>(_"G_!>
MWPYX?UWQ!<?M/_\ !+J:#0]&U36)H4_9)_:81I8M+L+B^DB5_P#AHZ38TB6[
M*&V/MSNV.0%/[<5F:UI-EK^D:KH>I(\FGZQIM]I5]''*\$CV>HVDUE=)'-&1
M)$[03R*DL9#QL0ZD, : /PM^#_\ P_F^+_PF^&'Q8T[]I/\ X)@:38?$[X=^
M"/B%9:3=_LF_M*7%WI=IXV\,:5XGMM.NKB']HZ.&XN+*#5([::>&-(II(FD1
M$#;%]&_X5W_P7S_Z.C_X)<?^(C_M,?\ T2-?K?\ #WP+X=^%_@+P3\-O"-O<
M6GA7X?>$?#7@CPU:W=Y<:C=6WA_PEHECX?T6WN=0NWDN[ZXATS3K6*:\N9'N
M+J5&GF=I9'8]A0!^,'_"N_\ @OG_ -'1_P#!+C_Q$?\ :8_^B1H_X5W_ ,%\
M_P#HZ/\ X)<?^(C_ +3'_P!$C7[/T4 ?C!_PKO\ X+Y_]'1_\$N/_$1_VF/_
M *)&C_A7?_!?/_HZ/_@EQ_XB/^TQ_P#1(U^S]% 'XP?\*[_X+Y_]'1_\$N/_
M !$?]IC_ .B1H_X5W_P7S_Z.C_X)<?\ B(_[3'_T2-?L_10!^,'_  KO_@OG
M_P!'1_\ !+C_ ,1'_:8_^B1H_P"%=_\ !?/_ *.C_P""7'_B(_[3'_T2-?L_
M10!^,'_"N_\ @OG_ -'1_P#!+C_Q$?\ :8_^B1H_X5W_ ,%\_P#HZ/\ X)<?
M^(C_ +3'_P!$C7[/T4 ?C!_PKO\ X+Y_]'1_\$N/_$1_VF/_ *)&O*/C%J/_
M  7C^#_AOP[XCU+]I#_@F#JT7B+XK?!;X56]K:_LG_M*6TL5_P#&;XL>#OA3
MIVIM)+^T7-&]OHM[XO@UB\MSY<EW9V-Q;6\T=S+ 3^^U<%\1/AMX5^*6CZ-H
M7B^UNKO3]!\>?#CXD:;'9ZA=Z;)'XI^%7COP_P#$;P==236<D<D]K9^*/#.D
MW5YI\A:UU.UBEL+V.2UN)D8 _)W_ (5W_P %\S_S='_P2X_\1'_:8_\ HD:/
M^%=_\%\_^CH_^"7'_B(_[3'_ -$C7[/]** /Q@_X5W_P7S_Z.C_X)<?^(C_M
M,?\ T2-'_"N_^"^?_1T?_!+C_P 1'_:8_P#HD:_9^B@#\8/^%=_\%\_^CH_^
M"7'_ (B/^TQ_]$C1_P *[_X+Y_\ 1T?_  2X_P#$1_VF/_HD:_9^B@#\8/\
MA7?_  7S_P"CH_\ @EQ_XB/^TQ_]$C1_PKO_ (+Y_P#1T?\ P2X_\1'_ &F/
M_HD:_9^B@#\8/^%=_P#!?/\ Z.C_ ."7'_B(_P"TQ_\ 1(T?\*[_ ."^?_1T
M?_!+C_Q$?]IC_P"B1K]GZ* /Q@_X5W_P7S_Z.C_X)<?^(C_M,?\ T2-'_"N_
M^"^?_1T?_!+C_P 1'_:8_P#HD:_9^B@#\8/^%=_\%\_^CH_^"7'_ (B/^TQ_
M]$C7E>MWW_!>/1/C1\.?@S-^TC_P3 EU+XB_#CXN_$6RUA?V3OVE%M+&T^$G
MB'X-^']0TR:U_P"&BWFFNM6D^,-A=VLZS0P6T.BWR3"6:ZM5'[YUPFJ?#CPM
MJ_Q(\'?%:^M;I_&/@3P?\0/ WAV\2_NHK.W\/?$W5?AYK/BRWN=,1Q9WMQ=W
MWPO\(R6E[<1O<:=':7<-H\<>I7@D /R;_P"%=_\ !?/_ *.C_P""7'_B(_[3
M'_T2-'_"N_\ @OG_ -'1_P#!+C_Q$?\ :8_^B1K]GZ* /Q@_X5W_ ,%\_P#H
MZ/\ X)<?^(C_ +3'_P!$C1_PKO\ X+Y_]'1_\$N/_$1_VF/_ *)&OV?HH _&
M#_A7?_!?/_HZ/_@EQ_XB/^TQ_P#1(T?\*[_X+Y_]'1_\$N/_ !$?]IC_ .B1
MK]GZ* /Q@_X5W_P7S_Z.C_X)<?\ B(_[3'_T2-'_  KO_@OG_P!'1_\ !+C_
M ,1'_:8_^B1K]GZ* /Q@_P"%=_\ !?/_ *.C_P""7'_B(_[3'_T2-'_"N_\
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
MV&<#L,C)Z#(S2U^1'_!4G7_&?A+XI?\ !*'5/"'Q \?^$K;Q9_P5"^#?PO\
M&_A[PQXQUS0/"WCSP/XA^#OQ\\4WV@>-M TJ[M;+Q38Q^(/!'AG5+.VU@7=I
M;3Z>VVU;[1(: /UV+!>N?H 6/Y*"<<C)Q@=Z6OAW]K/]CCP)^U3;6MS\9OC3
M\?\ P1\-_!WA6]GTSPU\&/C[\0?V<-,T;Q0\LM_J'Q6\6>+OA=XB\*ZYXKU/
MPSIMIIX\+:3XPU2^\ ^%%L];UB[\-ZK?ZPUWIORI^QA\4/VG=%_X)+?"7Q/\
M:O%WB'QK^T?XN\/ZU\/_ (7>//&$4-IXU\<VWQ)^,/B'X<?LD>/_ !W%*D4D
MWBS7OAEK_P *?'WCRXN(8]2FD;6=4UE(M0_M%E /V,R.!W/(&#G'J1U ]2<8
M) /)I2<#//X D_D,FOQH_;2TW7/@_P#M!?\ !%OP;X#^(?Q-T+PB?VN;OX+^
M(O"NG^/?$%EX7\?>"M _8X^/NO:3%\0M"L[R&R\:WUGKG@;P_K=G=>(/MXMM
M2AFNUB:YF\Y%_P""Q-M^UMXA^%/PW\(_ 3X _M%_&KX/W.O:IXJ_:7F_9!_:
M@\/?LS_M0:7X5\)VMA<>$M)^$^H:C"^O^.)M1UJ[O?$7B'P=X5U#P_K7B.#P
MEI/A>WU2:#Q!?Z?< '[*@YYY_$$?H0#2U\)_\$TM9^ OB7]B7X%^)_V:/B/\
M9/BQ\'?$FB:]K?AWQM^T)X[\7?$?XV76IWOC#Q ?&.@?$[Q-XXO;_P 1?\)C
MX'\91Z]X&UK0+JY:V\*7/AQO#.F :;I=JS_=E !1110 4444 %%%% !29&2.
MXZ^W0X)Z X(..N#GI2U^/VF^(_&UA_P7<\1^ #\1/B%?_#C5O^"5NF?$F#X:
MZIXRUR_^'NA>.Y/VMCX-OO%/ASP9-=?V!HVM:GX=T;2]-U'4K6Q%[=062K)<
M;9KA90#]?RP!P<^YP2!WY8#:O'/)''-._P _Y_SQWK\'/^"K?[)OB_1?@]\8
MOVP?A)^TE^UCHO[;?AK6O"TO[)UGX%^.7CW0?AG!X^U7QEX8\*_"C]GC3OV;
M].UI/@QXS\*_$_6KO3?"_P 0+OQOX0\1>)_%5SKWB#Q%JGB'3]$M;#2=!_33
MXR7.M^+/%W[.OP7EG,6H>)O%T/Q7^)!T1I8K5? _P'31?%5[%;SRRQW*Z9K?
MQFU7X2>'9+:8XU'PYJ6LVEPLL7VF)P#ZNR"2 <D=?0>Q/0'D'&<XYQB@D#K^
M74GZ <G\*_(?P!X@\86'_!;G]H_P%<>/_B#K'@!O^";O[-7Q-T[P'KOC+7-6
M\$>&/&/B/]H[X_>$/$.L>$/"5Q=?V#X:N-;T/P+X:@U673K%+J_EL/.N;J02
MF-?G_P"(/[??A[QI^T]^UYXB^+][\9_#G[!'_!.OQ9X9^$'CF\^$?P_^)'B;
MP]XW^.<O@_2OB'\:?BC^T!XC^'VG-KUI\#_V</#/BCPCX<@\ Z0VIZ9<ZW>^
M./BA\4M*U+POX?\ !/\ 98!^_-%8/A;5_#?B#PSX=UWP=J.DZQX2UG0M(U7P
MOJV@W5M?:'JGAW4=/MKW0]1T:]LWDM+S2;[2Y[6ZTZZM9)+:XLY89H':)U8[
MU !1110 4444 %%%% !2 @]/\_3U'N.*CFR89<,R'RWPR$!E.TX9200&!Y!(
M(R.01Q7X_P#_  2LUOXB>)$_X*F^'=?^*'COQEJ'@;_@J9^TO\.?A[XB^)?B
M36OB+J7@_P )Z3\(_@#=>%/#>GMK^HM(OA7PI>:S<OI'ABTN+#3(+9I;:%(&
MN9[AP#]A P)P,^W! /&>"1AN.>":7/;U]C_/H/QZ]J_!SQ)^REXP_96_;V_8
M.\0?LX_M#?M4^.O%GQL\=_&"Q_;.\'?&CX_?$;XP_#[XF_ 3PU\&O$>M:_\
M&K7/ OB_4]4\'?"WQ-X(^,LWP<\*>!9?A#HGP^\,V.I_$NU\&V>@Q^&[AM.@
M_3S2I;OXB?M3>+KQ;J\3PU\ _AO8> XA;F:"UG^*/QC;2O&_BTRXD,,VH>$?
MAOX>^&)TNX>*1[2/XDZQ'%Y9GE\P ^I@0>1R/7L>^0>X]QQ2;AG&&]/NMC\\
M8_'I7X\_\$D]=^(?B?X<?M^Z)XA^)OCCQIK'@G_@I]^WK\+_  1XK^)GB36_
MB+K6@>%/!'CS3?#O@'16N_$&I/=W>A^$=-@LK/3M&CN[*S6RM?LT8MS/+*?E
M[6O^"8WAOX+?M9_L1Z1X._;+_P""E'Q(^(7B/XP:O\9?B+:_$_\ ;2^+/BOX
M>ZO\*/@%H2>+O'>H^)OAM87.B^%)](\8?%?Q)\'?A]<^&X[:W\-1V7C^^MH=
M->PL1ITH!_1312*"  3DX&3TR>YQVR>W;I2T %%%% !1110 4444 !( R2 /
M4\"DR,9[>X(/Y'G/MUKP+]JN'49OV:?CY_9'B3Q1X0U:#X._$N^TOQ/X+UV]
M\,>*M"U+3?!>MZC8:GH/B#3F2_TG4K.\M8)[:]M'2XAD0,CCG/Q;^PMX7\8?
MM*?\$B/V$-(\2_&'XI^&=>^*'[&/[*NL_$CXG^%?%^KV/Q@\0QZQ\*?!6N>-
MGL/B;+=S>*/#WBCQS+)=V6L?$#3KS_A--.M]5U74_#NKZ1XH?3O$&F 'ZGA@
MW3/T(*G\F ./?&#S1D?Y]^F/7\._%?C#^PS\%_&W[-/[>W[7_P "_A1\4_C+
M\1?V*O#OP2_9V\5VOAWXY_%OQ_\ ''4/@Y^U9XWUSXDW'C+X=?#OX@?$[5O$
MGCG_ (1_5O@UIOPS^)WC+PIK/BC6X]"U;Q]X7U6P&G0>)A!-WGQGO_$GB/\
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
MU>WWC+6="^(^M:3JT.@:)X7T33[[]'** "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 **** "BCI7YK?$?_ (*P_L>?"SQ]XR^&
MOB[Q/XRMO%/@3Q)JWA7Q#;V?@+6[ZU@UC1;N2ROHK>]A(ANH4GB=8YXODD4;
MEX(KZKA3@?C'CG%8K!<&\,YWQ/B\%0CBL7ALDR[%9C6PV&E4C1C7K4\+3J2I
MTG5G&"G)*+DU%.[2/E>*N..#N!L+A<;QCQ-DG#.$QM>6&PF(SO,<-EU'$XB$
M'5G1HSQ-2G&I4C33J2A%N2@G*UC]*:*_*+_A\]^PU_T-WCO_ ,-OK_\ \51_
MP^>_8:_Z&[QW_P"&WU__ .*K[G_B7KQS_P"C2^('_B+YM_\ ,O\ 5GY7^&_X
MF%\#?^CL< _^)-E?_P T_P!6?E?]7:*_*+_A\]^PU_T-WCO_ ,-OK_\ \50/
M^"SW[#9('_"7>.^?^J;Z_P#_ !5'_$O7CG_T:7Q _P#$7S;_ .9?ZL_*Y_Q,
M+X&_]'8X!_\ $FRO_P":?ZL_*_ZNTA('4X[?B>@]R>P[UY_\*?B=X4^,WPZ\
M(?%+P-<W=YX2\<:+;:_H%S?6,VFWDVG7;2+"]Q8W'[ZUE)B<-%)\RX!Z$5^8
M?[9?Q\\<>,O^"@?[$?\ P3E\%^+=>^'_ (-^,7@GXU_M+_M*>*/!^K7WAGQ_
MK_PC^"4.F:1X.^#_ (-\7:;LU7PE8_$[XE:S!+\2?$?AN]T;QC#X"\*7OAOP
MUKVB3^*[O4K?\EQN"Q>78S%Y?C\-6P>.P.)KX/&X3$4Y4L1A<7A:LJ&(P]>E
M-*=.M1K0G3JTY)2A.,HM)IGZU@\9A<QP>%S# XBEB\%CL-0QF#Q5"<:M#$X7
M$THUL/B*-2#<*E*M1G"I3G%N,X2C*+::9^O@8'IG\58?S _/Z>HI:^1/$'[*
MWAS2/'GP5^(WPP\5^*OA7%\)_'&I>)?&/A'1/&OB^U^'/Q8\+:OX&\:^$]5T
M7XC>#Y=;G\/>(+W1K[Q3:>.O#'B+5+1M4T;Q1X<LKB749+*>]@D\1/\ P4R^
M%=OX.^ _QRU'P/XYLOV4?VD?B3X6^%7PP_:-8Z-+X?CUKXB>(+KPI\)/&WCG
MP?\ ;$\5>#/@]\8_$D.GZ/\ #[XC7,6H1_:/%?@N\\9Z'X.T?Q NIVG,=)^E
M-%?F?\<_^"G'PQ^"NC_M;>.8_AO\1_B)\+?V$M8\.>'OVHO&?@H^%GN_">N:
M[X+\*?$35M-\&>%]<US2;[X@S?#KP/X[\'^)_B,]I?:+#I5EK,NF^'9/%GB7
M1M<T'3];Q7_P4$N;/]H2\_99\ _LQ_&GX@_&P_LF:%^UOH>@1^(?@KX9T#6?
M"'B+XDS_  SLO#4GC/5?B7<>'-(\26NM6&H37SW][_9<D$=F-$N=<%X\MH ?
MHU17YL>!?^"HO[.'Q1^"?[-7Q=\%:WIFFWO[5GPN\4_%;X8^"_BIXR\&?"F]
MT[0/ %YH.A?$"#QQK^OZM=Z%HU]X/\:>)M%\":A;Z%+XHN+_ ,2WP?1;?4-
MLM6UO3O.KO\ X*Z_":/]FWX>_M6V?PD^*=U\'M4_:#M?V:_CGKLM_P##JS3]
MECQJWQ/M?A)JWC/XPWK^+Y="U'X,Z%XJOM*NM0^*7PTUGQQHK>%O$'AWQ9;6
M\NAW]W=Z8 ?K92$@=?R ))^@&2?P%>,?!3XN7GQETCQ3XFB\"ZWX3\*:?XY\
M4^%_ OB#5]8\-:G:_%+PSX9U:ZT6'XF^%8O#VI:E-:^"/%%Y974_A*XUT:?J
MFN:1'#K]OIXT/4M'U#4?S2M/B_XE_:\_X*O?M#?LCZAXGU[P]^SU^P/\"_@3
MXN\??#WPYJVJ^&IOC9\?/VFTUWQ3X5O/'>OZ'=V.JZS\+_A9\,O#L8TOX=PW
M=GH/B/QUXLNM>\90^((/#GAS3M. /V4!!Z9]<$$'\00"/QZX/H:6O@_X@^#?
MA9^QSKWC/]LC7OBIXM^&_P"SY\)_V<OB+:?%+X97OBSQ7K?PNTVWT76?!_C+
M2OB-X/\  -U>:C9:3XZM=+\-:]X0NK;PW;QW?C&'7-!TNST]]6@W:CI67[:N
MEZ)\=O@K\ /C%\*O'/P;\7?M,^$_&OB7]GV[\0W_ (6US2?&NM_#C0;#Q;XY
M^$?B*Z\/:K<KX"^,VA>#=0;Q?%X5U8WOAKQ!H.C>*9/#/C?6-0\+ZSIUL ?;
MU%?C5:_\%B="O?V?/BM^U1:?L;?M63_ ?X->"/VL_$WCOQUCX&00Z-XA_9'^
M*>N?#7QGX FL+OXOVUW<>(-<B\.:SXJT+4M,74O#$^G6%]H]OK.H>)=,U?2=
M/]K\-?\ !2GP>O[2W@W]G/XR_!#XQ_LZ)\:/AMXY^*?[-_Q7^+$OPYB^'GQN
M\.?"CPYI_BWXJV%K_P (OXWU_P 4?#?Q7X-\)Z@/&LWA;XHZ#X6UBY\%6E]K
M=U;:7=VSZ0 #]*J*_.2S_P""D7PWCTK]ECXD^)_ /CKPE^SS^VCXQ\&_#_\
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
M0G3OA$/#7P1\;_\ !,SPA\#=+\,:]XX\*P_$W2_B@OQJU;XUW&C7_AW3#?\
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
MA6/AYHO$H!]ZT444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
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
MQ7X+_P"$B\1^"]8T7PS Z:GJ,$\VCCQA8>$[O6M-L+@ ^XJ0L!Z_0*Q//3(
M) X/)P*_/W]LW]H3Q!X+^+?[%'[*7@+4YM!\=_MG_&_Q1X6U#Q-;,\&H^%/@
MG\$/A9XH^-_QNUC0+Q6'V/Q/KVC^&_#WPNT'48P+O0+CXC3>*]-=-3\.V9'P
M?^WM^T;)^QM^V3X+^(G[8OPU^)WB3_@F5XB^ /A#P!X8^+'P[L_%WBWX;_LK
M_M#Z=X]\7WWC;QC^T1X!\$R2>(XO#WCGP7=_#71_ WQ=N;36X_ 5UX7U/1-"
ML+2[\6>*M1E /WR+ #/S?@K$_D 3^E&1C/3/3(()]L$9SQTQD]J_FW_X*C7V
ME>"?^""_[6_Q?_9]_:8\9?%;2TLM:^-'[/\ ^T3X3^./C#Q1XPTKP[\0/VA/
M#6J^']-\.?&71O$W_"2ZKIO@G0]?O/ASH[SZ_>W%OX3TBS\-ZQ->36VH";Z0
M^+GQ8USQ_P#\%&/V2O\ @EUX'\3^(_AM\(M&_8^\;?MO?M!CPEKVO:/XK^*'
MA#0_&^@_!WX5?!:V\>VNIKXN\/\ A+4/'>K:YXX^*,^E:O!XB\;:7H&B^$;K
M7K;P[J_BNPUX _;@,#TS^*LI_)@#^/\ C02%&3G\ 6/X  D_@#7RC=?LJ>'=
M&^+/P7^)WPQ\3>,/AO8?#C6/&K^,?AMX?\7^)K?X8?$[0_&/@;Q)X?CD\4>
MWU&X\/7GB[PMXFU'2/$GACQ4;.'4+*)?$-A<RW8U:UDL-K]JCX5?"SXJ?"O6
M+#XX:O\ $^#X3:#:W^O^,_#GPQ\9?%?P9J'BBRM+-UBM=3N?@9>Z3\6->M+!
MFDO;/PIX8U58M:U06C7^E:U)9V%O" ?2F1C/0>X(//3@X.?;&: P(R,CZ@J?
MR8 X]\8K^<?X&^,_C1XZ_P""*?CWQ3^R1\?/$7[3>O\ A#XM?$37_ 4/B[XJ
M>(_#'QJM_P!F'X??M3+XSUG]DGXD_&'QZVD>-_!/[0>F?LHZ?J?PDU?Q=XT?
M1]=\)^*M6LUBUZUL+/2?&!][_P""?GQDT?\ ;4\5_M$_&+]D/XC>)/@]^R_J
MOP>\#_!:#X3^)K1%^+?PE_:YTG5/'>J?$WQYK?P=\5:CK4GP8\3^%?"/B7P1
MX/FT3Q!:KIGQ9\2>&AX[71-6\'Z5H'BCQT ?MZ&!R!GCU5E_+(&1[C(HW#..
M?K@XZXQNQMSGC&<Y[5^%?@O]F#7?V1_^"G'[-GA_]F'XO_M%^*?AC\5/@?\
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
M+,NJ^,]=O]8\16\5I#>:1I.L:II0!^OE&>W^?\^U?E_\+_\ @JA\%/C/X;^
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
M@Y[_ .+K\)?+_J:^?X/L>[_87"?_ $76&_\ $>SS_P"4GT=17SC_ ,*(U_\
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
M%7B^_P!9O_$?D=I_P3"^(*?L8VW_  2SEC\-)^RA8_M/1^/1\38]=*^(+O\
M9-M?VI5_:SL_@9_PB4-O%J4?Q.?6!'\"-0U]Y1X-D^&L4OQ'74Y_%%S_ ,(#
M'^ZFHZCI^CZ??:MJM[:Z;I>F6ES?ZCJ-]/%:V5C8V<+W%W>7=S.R0V]K;6\<
MD]Q/*Z10Q(\DC*BDCB?A5\6/AM\<?A_X9^*WP@\;^&_B1\-O&=C+J?A+QQX/
MU2WUOPQXDTV*^N].;4=$U>T9[34K!KRQNH8;RU>2VG\EI()9(BDC 'Q?H/\
MP2P_84\ _M2ZW^W;X"_9O\,6?[8&H:YXZ\;#XJ7'CKXH0SZAXT\>^']9T#Q)
M>W>EW'BO6/"-C#K^GZWJ&FWC6W@VX@TZVOI;K3=-2Z@MP.4OO@Y\=OVQM>_9
M(\7?M/\ P.\'?L[ZG^RI\?;?]HBYT_PM\9++XS77B'Q_X7^'_P 2/AYX7T3P
M#XFTKP=X.GM/ &JM\0)O$_BC5/%.F>'_ !#?V&BZ;X1D\'R#5K_6=&^[/&OQ
ML^$WP[UJP\->-/B%X5\/^)M4L4U73O#%YJUN_B:\T=[[^S#K<'AVU:XUM]#B
MU'%C/K?V :3;W1\B>]CE#*-OP+\2OAY\4--O]8^&_CKPAX^TG2M6GT'4]3\&
M>)-'\3V&FZY;6ME?7.C7]WHMY>V]GJ]M9:CI]U<Z9<21WUM!?6DEQ!$)X]P!
M^/\ \;_^"??Q"^*/P_\ ^"E7[/GCCP/X)^-GAC]NSXC:E\3OA9\8?%WB:RM+
M[X):MJ?P=^&WPV\#:?XKT*\TQ_$UK/\ LR^+OA\OC[X+:S\-;K5YK^RN++3)
M(? ^OQZSK6L]?^T5H?\ P4PM?'?PZ\#?![]GC]G/]I'X#?"3PO\ #ZY@\2_'
MS]K#Q3\)O&/Q8^+_ (5L='N(_B#X]\'^%?@#\1M-N--\-ZO8KK'A[P_<ZU):
M3^/8_P#A/+^WFN='\'V^B?L/10!\8ZMI_P"TIX\_9PT'1_B5\%?V>/$7[0GB
M/3)=3U3PQK.M7?C+]F_X;>,#J-W<>&Y-2O==T%/'7Q%M/!%M)IEU<7.B>$_#
M6I>,M7TZ_33;[X>P:I:WVE;G[%W[)7A+]C+X(VGPI\/Z_J?COQ1KOBWQG\5_
MC'\5]?T_2]*\3_&7XX_%'7)_%7Q0^*/B'3=%BBTK2[GQ+X@NFBT?P_IPDT[P
MEX4T[P]X1TV>XT_0K:>7ZRHH _-?Q3^SA\7?AE_P4*U[]M[X5Z9I/Q)\$_&#
M]E_P?^SK\9?A5+XDM?"7C;1O$/PA\?\ B[Q[\*OB9X#U+7HSX0\1V%_I_C[Q
M?X)\:>$]=UCPC=:<W_".^)]!UC4]VN:,?H7P/\._'-S\6?B1^T-XL\.>']!\
M6Z[\-?#/PI\ ^!X_$+ZG-8^&/!WB#QSXQ%_XR\46.GOIMOJ_B[Q1XPCAFTS0
M;/7-/\+Z'H-A<Q:OK>I:MJ-G8>K_ !#^,WPH^$U_\/M*^)?Q#\(>!]4^+'CK
M2/AE\,],\3:Y9:3J'CWX@:ZD\NE>#_"5E<R+<Z[X@O+>UNKJ/3=/BFG2SM;J
M\F$5K;S3)2TKX[_!G7?%_P 5_ &B_%#P/JOC3X%:7X:UKXR^&M/\1:==ZO\
M"_3/&.F:WK7A>Z\=6D$SOX:77='\.:WJVFQZI]GFN=,TZXOUB%H(YG /!M/U
MC]MR[@_9K\<ZW\._@YI=W_P@7CF#]JKX.Z+\4];U/^S?%VLCP3-X)N/@OXXO
M_!>G:9XKNO#=[I7B:VU%/&-OX/TZZT;7[Q+75VU"UL9+GY6^$'[(WQ6^!/QQ
M_P""AG[:WP6^#OPO\#_$3]ISX:?"33OAY^S*_C2'POX3\8_%7X-Z9\1;JY^*
MOQJ\7^#-%UGPMX9\:?$[5?'.G>&=1?P5I?B6.RT#P=!XEUWQ!J_B/QAJMMH7
MZC_#KXB^!OBYX#\'_$_X9>*]#\<_#WQ_X<TCQ?X+\8^&K^'5- \3>&=>LXM0
MT?6]'U" F*\T_4+.:.XMITP'C<9"L"H[2@#E?[*?Q;X+&B^/M"T@R>(_#(TS
MQCX;@O)=:T)FUG2!9^)-#AOY[/39]4TIC=7VG1WDVGV$M]9%;B2SM7E,$?Y5
M_L3? G]K;_@G?\,M+_8XT'X?>%_VE/V<OAKKGB>R_9K^+MM\6-,\!_$[PK\(
M]>\0ZMXF\._#/X[^#O%OAY['5=7^&4NK77A31?B+\-M;UN+Q?X4M= FU+P%X
M:U>QU WWZ_5XUX__ &B?@1\*O%OA#P#\2OC!\-_ 7CCXA7$MGX \'^+O&&B>
M'_$WCN]@19+FQ\%Z'J5W;ZEXJOK6)XYKNRT&VO[JU@D2:XACB=7(!\0_&[]F
M;]H>\_:G_9$_;?\ !4O@CQ9X]^"GAGX\?!GXV?!VVU>?PS8>+_@5\?W\&:PD
M7PN\8Z[9-8R>/_A+X[^''@K7H6\96/AC2?B?HLWBRUN=1\"WA\/6=O\ *?[2
MG_!.3XX^/_@W^WQX@\":-X/U'X\_MY?M>?L??''4?"FK>._[!\'_  [^&7[)
MGB']FV/P_P"'+[Q0=!U7^UO&6M>$O@1K^K:I-I.C2Z1%XR\?VN@6][=^'_#1
M\2:C^]P((!!R" 01T(/(/XTM 'YG6GP2^.ME_P %./&O[6?_  @6A3?"/6/V
M#O W[/NF;?B!I*>-)OB7X1^-?Q$^,-S!/X;?2QI]MX9O;#QM:^'K;7_^$EEN
M4UNPNI)]$71Y(-2/X_\ P3^ 7[07[&'B#_@WP_9^^(G@7PMKWQ>^#7B'_@HY
MHGBC0/!_C^TU'0-<T77O@KXY\5KJ'A+Q?JNBZ'9OJD6F>)-/>'3/$VF^'[6X
MO;#5+&;4K*![#5Y?ZL:\9\;_ +/7P6^)'Q*^&GQB\<?#KP[XF^)_P;EUFX^%
M7CC5(+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 _
M8_\ @A\ [3X >&O@1?\ Q5L/#FJ6=[XMO]3TCP_\:_B18M8V_@KQH8M1^"]U
MK6K^#8[G4/%?EGQ(_P"">7[8GB']G[]OWX,Z1\./@A8W7[1?_!2W]G/]L?X6
MOX<^+5QIWA>P^&_PYU[]COQ;XE\)ZG:7WPWL;C1=;TBS_9KUCPU82V]C-9>(
M?$7B&TU*'3?#_AVW>:3^CNB@#\MX/V??CK8_\%(OVAOVLD\#Z%<_#/XB?L%?
M";]G7PM9K\0-)@\677Q'^&_Q*^,OQ%OEU'27TF2PTGPYJUM\4]/T2PUO^V-1
MGM]2T34KFZT@:=<V4I_/_P"#'[ O[?W[)7P4_P""9GQ1^!WAGX&^.?VDOV+/
MV8O'7['7[07P \<?%34O#?PZ^/7P:\<ZOX!\4G4OAK\:+'P+K[>!O&7A?Q]\
M,O"WB72)O$7@"2TU72+[7-$U0PM:6:ZI_2110!^8?QS^"/Q2_:9^$WP[^&_[
M87[)?P _:)\#^.+GQIXA^,'PU\._$*:VO/@-X@L[;0V^#UQ\#_B%XLT/P1K7
MBWQ/H2'Q/8^(_B7IUY\&?%5EJVK2:_X*.D:3:V_AB\^-OVHOV3/CKJ/_  1^
M\)?\$V?'_P 1M;^,G[0?[0OBKP7^S]I_C+7-<U/QOKFD_#'6_P!HVU^(.M:S
MXP\9ZE::?J_B]?V<?V5](N[#Q'\1M7T^TNO'>N^!=.N[FV&N>---L+K^@6J)
MTS3CJ*ZP;&T.JK9-IR:BUO$;Y-/DN$NI+*.Y*&:.UEN8H;B:!'6.6:&"257>
M"$H >5_'/0_$VM?!#XG>&/ F@6WB#Q1KOP]\6^&/#.A7>MV_ARQNM1UOPYJ.
MAZ9%?:[>VU\FEV,4MY!)?7GV'4)X+=)I+>QOIUCM9?SL_8S\'?MO?LL?L'?L
MV?LNQ?L\_#S5?BS\#_@+\,_@LWBVY^/VBM\,)M<\':%IGA*?QI(UOX(;QC=:
M!!!;2>)O[!A\.0ZM?F$>'$N[1YQKD7ZZT4 ?SP?MJ?L/?MW_ +06C_\ !17X
M?CPK\'_BO%\9O$?P0\6?LG_%SQU\8M2\/7?PZ^%OPZN_@AK/B']G'3?AS_P@
M&L6/P\UW4_&OP^^(7C"_^)6D:H^E>-[SQ[I]UXN-R/#FE>'].^X?#7P;_:8^
M%?[;'[57[2.A?#OP%XVT#]JKX"?LL>$]%L(?B>=%D^&/Q0_9WM_C5%J&F^.S
MJGA2WN]:\ >(I/BUI\MAXO\  ]MJ_B.W70=2ANO *-=V,X_3ZB@#XZ_8S_9D
M'[$/[''PI_9R\-:A-\2-5^$_@G5$O-3*VGAB/QQX\\0:SKOCKQE?V%O<23V?
MA?2O$7CKQ+KLVC:?<7-Y'X>TBZL;*>[O#927$O@WPV_84\ ?$S]GSQI%^V+^
MSK\-/%7QT^-\/Q,UO]H&TM=8L_&-EXF\0_$1M3M[_0-!\;7-CH<EWX8T'PG/
MHGPX\!WFKZ1I-_I/A#PKX;MK^V@DL X_3ZB@#^6W4?AS^V?^SS^RQ_P1(^ O
M[1OA?P3XH^,O[/G_  4]^#7PR\*ZUH?Q/_X2#2_B=\*/"/[-/[8&F^!;W5-=
MD\):3<:!X^T+X41:=X;U>'4M-O=)U[Q=X?@U9];M=,\07DFB])_P57_9R\?:
M9^RO_P %1OVS?&NF:)X<\:_'3X<_L.?!CX8_#2/4X-7?PIX ^ /[1FAZ]I&J
M?$7Q+X?BN-,NO%?CSXA_%7Q%-J]MX8;7=.\,>!_#WA&&RU;5M9GU:UM?Z"OB
MG^S[\&OC;JGP_P!:^*WP]\/>.M5^%/BVS\??#:^U^&YN9_ WCG3X+JTT_P 8
M^&&CNH%TCQ386=]?V5EK]HL>J6ECJ%_9074=K?74,UGXU_ CX/\ [1W@#4?A
M7\<_A[X9^*7PXUBYTV[UCP/XQL3JOAC5Y]'O[?5=*.K:.\J6>I)IVJ6=EJEE
M#>QSP6VI65G?Q1K=VEO-& ?F[^TK^RG^U%^TW\4[[X_^";[PW^S;\6?@?^Q?
M^UU\"_V5-7O_ !#8^+-7L?VC?VH[+P):2_%OQ#J7AW3;_3M*\ _#6W^%V@6O
M@ZUDLM7\1ZQJ?BW7O$&N>$]&_P"$5TS2/$?D?P)_91_:T\&?M-_!3]HO6/V?
M?A#X'T32O^"<_P 6/V8OB-X,T;]H:_\ '7C\?&77?BG\,?B*OC'7?'>M_#NS
M3XEM\0;OP5>>=XJU?4CXAM;B]O=>\8:G?:E>)I"_N;IVGVNE6%EIEBCQ6>GV
ML%G:QR33W+I;VT2PPH]Q=2SW,[+&B@RW$TLTA!:21W)8W* /P4\$_L=?MT_"
M[_@DI^QM^RKX'C\%V'QG_9SU7]G/PY\=_AYI/Q;N_#_AK]HGX%_"OQ7#-\6?
MA3X9^,VG>&+?5/ ]K\6_#2P0R7=]X?LVGTR'5_ VN2#1_$%YJ,_(?$/_ ()T
M?M1_%;X+?\%L/A'_ ,(-\#OA5#^WWX5\ :I^SY'X8^(%U?>%?#VO^'?V5/A=
M\&D\!^*=(L?AWHC>';*P\2_#$MJWB[3;>ZL;Z+7UU#1O#1AM)Q+_ $-44 ?D
MEKWP7_:R7]LO]DO]M70/@_\ #N[O(/V3/BE^R;\;_A'J?QQCL[OX3I\0/BC\
M%?BKX;^(FB^-[?X:W.F_$VQT67X8:SX>\8Z#I.C:#J(EUC1[_P ,OK-O!?X\
M(^"W["'Q6\/?L+_"C]C3]K']E7]G_P#:C^'+_&3]K7Q?\5_#5I\1O)U3P_IO
MQ*^/'Q-^-GP7\??##4?$^B>'O[*^(&E3?$*\\.ZO'I/C#PYKGA$./$/AKXBW
M-Y:RZ1?_ +R44 ?'_P"PI\$_BQ^SU^RY\//@[\9/B-K?Q.\8^$+[Q]%I_B/Q
M+XHU+QWXETGX?:K\2/%NO?"3P%X@\?:U:66J_$#7/A;\+M3\'_#K5/'.IV<%
MUXMU#PO/K4T9CNT>3\4_A[_P2Y_:^\4_L2:C_P $V_CWHGPIAN/AW\?O&?Q\
M^#?_  4E\*_%76-2^*%M\2-8^.WBSX[>#OVC+7X0Q>$=!\7Z=^TOHFN>+M1T
MKQ+;WOQ(LO!NK6%S?F3QEK-A=W&@W/\ 3910!^:7_!/3P]^WU\/O!MA\'_VN
M?AO^S9X:TKX5Z1?:./C!\&OBMX[\>ZW^TKXQU/5GU;4OBMJ7@;Q9X%\-3_"F
M[\37U[KOBOQ_#KGC'Q]KGB?Q[K][=6*Z+I<<DU[^EM%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %?+?[97QMN_@)^S[XU\9:#>V-EX]U=M'
M^'OPL;4;6?4+)?BC\1]6M?!W@?4M2TRSM+^_U#P_X7U?54\:^+X[*QNIK;P9
MX8\1:B\0M[*=T^I*^<OB)\$_%GCSX[_ OXK+\3FTGP7\%1XZU)?A4W@ZRU*Q
M\4>,?&OAJX\%P^-+OQ6^NV>JZ/K/A+PCJOBC0O#$.G:?)8QP>-/%$NKP:K+<
M:4=( /QS_P""1_B[P9^S+^U5^V)_P36\+^/=?\>?"U!I/[;O[)'BGQC=>)=0
M\1:S\/\ XM3V7A[]IWPAJ&I>)=-TN6ZU+P)^T=#<>.KI('U&XN+/XUQ:E<S1
M>888\/QG_P %.?VRO!W[.?[8G[5NI6_[/'_"(?L3?\%+?$W[*7B?X;Z?\.O'
M]QK'Q@^"^D?'WX-?! ZAI/B^Y^*T4/PU^(=CI'Q.O/%\.ISZ#X^T76_$.GVN
MESZ3H.B&19?T]_:7_8IU?XZ?M-_LA?M2^$/C+>_"3QU^R/>_%!=(M[#P%I/B
M^U^(WA7XR:)HGAOXA?#[QO<:KK^ES/X,U?2="T^YM;'3HX=0TGQ-9Z?XHL-3
MAU'3;(1?+GC+_@D8?&W[*O[9/[+>I?M'Z[;Z1^V5^U_K?[7OBKQE9_"WPTNN
M>"_$7B#XL?#_ .,.H>"O"^G3^)9M(O/#<7B/X:^'=.T^^UZ._P!<M]"GU>WN
MKN_U"YLM3TT R_V[_P!OG]HK]E*#]IWX@:39?!B]\/\ [/7B+]G.^\#?">&+
MQ!X\\9_%3X4?$CQ%\.O#7Q3\:_%[7O#6H6:?LWW$.K^+_%/AWX*1ZYI]Y!XB
MU/P%<>);JV\8:-K,VBZ'>U>'Q)>?\%QOBU;^#]5TG0O%EQ_P1R^&EOX;UG7=
M%N/$6AZ9KO\ PV7\;(M(U#6M!M-8\/W>L:3:7IBGU#3;37=(NKJT$\-KJ5C/
M(EPECXU_\$E-8^,&F?MT^$(OVL?&_@[X=_MW>)_AQ\6O'?A73_A=X#UV^\)_
M'/X=Z!\(O#</B;P_XN\17M[XAO/AGK6G?!7P8+CX2ZC/_P 2IHM1M="\<:?I
M>H76GS_0VO?LY2_![]J7Q]_P4:\8_%7Q?XQ3PG^Q+%\"/%?PP\,?"&#7=4US
MPE\,/%WBKXXW?BOPU9^$+J\\6Z[\1-6\1ZQKMGIOA#P]H=U9ZIIT^F^'-(T2
M?7!'J]R >$?LM_MP?'W]H/X&? G1=9/PO\)?ME7'[3GQ$_9Z_:K\!67@W7[_
M ,(?"76_V=M8U^Z_:%AT?2)/'3ZO%I#^#;/P5J7PG\7ZCXEU:WUC_A<7PGUS
M4]*NM-\0S:=')_P26^('Q_\ B7=_\% M9^-OQ?A^)B>#/^"D'[5_P=\/PR>"
MHO#DVD:/\)=5\%>#/#5OI=Q;>)]2LM.\-6'A72]-TZP\-0:3Y\5XE]K>I^(-
M9U74KVXG] _8>^'/PU^)WQT_:-_X*)^"/AM\2_AI:_M4:+\*O#'AG3?BKX5\
M6_#7Q+XETKX;>&8-(\0?&6?X2^,+?3=;\!ZI\43:>!_!5S-K>C:=K7C+P=\!
MOAYXGEB?1K_1;FZQI/V%?C)\"OAQ^W9I_P"S%^U1\1_A]XA_:I^//BO]I+X<
MW/A[X1_"#Q?XK^#GQ5^*?B7PEKWQ/M-+NOB$MUX7\:>'O&%[X?N]*TR3QKIV
MEV_P]T'Q/K5T]WK%WINC7^F@'B7P$\2ZW\8?^"\7[?UC\2HY[VP_8V_96_9(
M\$?LQV5]+)_97A_0_P!I.Q\4_$+XZ>.?#NDSDVD?BCQCXE\+^'/!.O>+]/B7
M4V\-^#M.\*2WRZ>)[.6K^V+KGB?X,?\ !:K_ ()4:O\ !]18ZS^V'\+OVV?@
M/^T38Q)-+IOC/X=?!#X;>'/C)\(/$GBS3[:XMS?7?PE^(>J:L- UN5XM4L=%
M\;^*/"^GZK96OB.>"3[SU+]D"[UCXO?"C]K*P\:VWP]_:Y\+_!C3O@G\4?&G
MAKP_#K?PW^,O@.:ZT_Q1J?@GQ[X!U"]TFYU+0?#?Q$BU/Q?\,->T/Q%X6\;>
M"9]5U?3(->N_#?B+Q%X=U+H_#G[,WA_P[\=-6_:^^,WC;_A8GQBT7X<WGPQ\
M'>(+S2K;P;\._@G\*;[6+/Q1XWTGX<>#_P"U-<.BW_C[6M)TC5?B-XY\2^)O
M$OBS7;'PSX:\/Q:KI/A;0X-%D /QV\,?\%-OV^K#]C3]E?\ X*->/] _9<U/
M]GWQ9\:?#7PC_:8^$G@[P7\4M/\ B1HGA7Q]^U+J_P"S1IOQI^&'Q!U/XC:O
MHMH_AGQ)<^#KE_A'XA\#:[-J>A7.M7=[\2;?59[>RTK[(_83\;?'KQE^WK_P
M5=T3XB?&&+QIX#^#W[0OP>^'?@;PE-X'31E\,^&]8_9;^%/Q/T?2= U"W\7W
MMOI^GZ1J7CWQ$NL-/H]_J?BW5KB3Q#>:EI:SPZ%IWRE_P2?_ &9)OVC_ /@F
M9^ROX&^*_CZ_O?@]X*^.OC'XOZ]\%[KX?W'A;Q7J?BCX8_M:?$/XN_#/P/\
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
MP_\ $WP=X+^/OCW_ ()K_#CX=_&KP!/\)/!OB7X8VWQ3\)_&/X%^(OBQX?\
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
M^/\ HB_#/0-$\<Z>EGX6TW6- &G-X9U.ZNKS4-+M;/1X/$^@?;+G6[-VC_\
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
M@ HHHH *" >#_G_ CL>H-%% #0H7.,G//S,S?EN)Q]!@4ZBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ I" 1@Y_ D$?0@@@^X(-+10 @4+TS]22Q_-B3^M
M+110 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 %%
1%% !1110 4444 %%%% '_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842393840">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document and Entity Information - 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, 2018</div></th>
<th class="th"><div>Jan. 27, 2019</div></th>
<th class="th"><div>Jul. 01, 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_DocumentDocumentandEntityInformationAbstract', window );"><strong>Document Documentand Entity Information [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_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_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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,  2018<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">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 " 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_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_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="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_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_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="re">
<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="ro">
<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="re">
<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="ro">
<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 Emerging Growth 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_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">170,831,424<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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,312,677,834<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DocumentDocumentandEntityInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Document Documentand Entity Information [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_DocumentDocumentandEntityInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_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>If the value is true, then the document is an amendment to previously-filed/accepted document.</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_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>This is focus fiscal period of the document report. For a first quarter 2006 quarterly report, which may also provide financial information from prior periods, the first fiscal quarter should be given as the fiscal period focus. Values: FY, Q1, Q2, Q3, Q4, H1, H2, M9, T1, T2, T3, M8, CY.</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_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_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_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: (1) Large Accelerated Filer, (2) Accelerated Filer, (3) Non-accelerated Filer, (4) Smaller Reporting Company (Non-accelerated), (5) Smaller Reporting Accelerated Filer or (6) Smaller Reporting Company and Large 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_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>State aggregate market value of voting and non-voting common equity held by non-affiliates computed by reference to price at which the common equity was last sold, or average bid and asked price of such common equity, as of the last business day of registrant's most recently completed second fiscal quarter. The public float should be reported on the cover page of the registrants form 10K.</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>Indicate if company meets the shell company criteria: a company with no or nominal operations, and with no or nominal assets or assets consisting solely of cash and cash equivalents.</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 with both a public float and revenues of less than $75 million.</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_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_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>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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842175440">
<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, 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_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">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
<td class="nump">$ 529,515<span></span>
</td>
</tr>
<tr class="re">
<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">206,052<span></span>
</td>
<td class="nump">187,289<span></span>
</td>
<td class="nump">131,070<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">600,286<span></span>
</td>
<td class="nump">578,794<span></span>
</td>
<td class="nump">398,445<span></span>
</td>
</tr>
<tr class="re">
<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">116,445<span></span>
</td>
<td class="nump">99,205<span></span>
</td>
<td class="nump">78,269<span></span>
</td>
</tr>
<tr class="ro">
<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">262,699<span></span>
</td>
<td class="nump">220,728<span></span>
</td>
<td class="nump">166,110<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">221,142<span></span>
</td>
<td class="nump">258,861<span></span>
</td>
<td class="nump">154,066<span></span>
</td>
</tr>
<tr class="ro">
<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">(1,064)<span></span>
</td>
<td class="num">(1,601)<span></span>
</td>
<td class="nump">101<span></span>
</td>
</tr>
<tr class="re">
<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">14,715<span></span>
</td>
<td class="nump">9,542<span></span>
</td>
<td class="nump">7,039<span></span>
</td>
</tr>
<tr class="ro">
<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="num">(219)<span></span>
</td>
<td class="num">(338)<span></span>
</td>
<td class="nump">871<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 from continuing operations before income tax expense</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">234,574<span></span>
</td>
<td class="nump">266,464<span></span>
</td>
<td class="nump">162,077<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">15,307<span></span>
</td>
<td class="nump">89,752<span></span>
</td>
<td class="nump">18,128<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_IncomeLossFromContinuingOperations', window );">Net income from continuing operations</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">219,267<span></span>
</td>
<td class="nump">176,712<span></span>
</td>
<td class="nump">143,949<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity', window );">Net income (loss) from discontinued operations (Note 20)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(255)<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">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
<td class="nump">$ 143,694<span></span>
</td>
</tr>
<tr class="ro">
<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>Basic earnings per weighted-average common and common-equivalent share (1):</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare', window );">Net income from continuing operations (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1.27<span></span>
</td>
<td class="nump">$ 1.02<span></span>
</td>
<td class="nump">$ 0.84<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare', window );">Net income (loss) from discontinued operations (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0.00<span></span>
</td>
<td class="nump">0.00<span></span>
</td>
<td class="nump">0.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_EarningsPerShareBasic', window );">Net income (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1.27<span></span>
</td>
<td class="nump">1.02<span></span>
</td>
<td class="nump">0.84<span></span>
</td>
</tr>
<tr class="ro">
<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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare', window );">Net income from continuing operations (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1.24<span></span>
</td>
<td class="nump">0.98<span></span>
</td>
<td class="nump">0.83<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare', window );">Net income (loss) from discontinued operations (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0.00<span></span>
</td>
<td class="nump">0.00<span></span>
</td>
<td class="nump">0.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_EarningsPerShareDiluted', window );">Net income (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 0.98<span></span>
</td>
<td class="nump">$ 0.83<span></span>
</td>
</tr>
<tr class="ro">
<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">172,333<span></span>
</td>
<td class="nump">173,287<span></span>
</td>
<td class="nump">170,676<span></span>
</td>
</tr>
<tr class="ro">
<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">177,406<span></span>
</td>
<td class="nump">179,551<span></span>
</td>
<td class="nump">174,144<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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.1850<span></span>
</td>
<td class="nump">$ 0.1675<span></span>
</td>
<td class="nump">$ 0.1475<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_IncomeLossFromContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 income (loss) from continuing operations 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://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 18<br> -URI http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4613673-111683<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.13)<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 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 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 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_IncomeLossFromContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeLossFromContinuingOperationsPerBasicShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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) from continuing operations 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://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.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<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 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<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 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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1337-109256<br><br>Reference 5: 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 6: 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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<br><br>Reference 7: 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(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 8: 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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 9: 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 1<br> -Subparagraph (SX 210.5-03(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868656-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_IncomeLossFromContinuingOperationsPerBasicShare</td>
</tr>
<tr>
<td style="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_IncomeLossFromContinuingOperationsPerDilutedShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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) derived from continuing operations during 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://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://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://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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<br><br>Reference 4: 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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<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 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-03(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868656-224227<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 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=SL5780133-109256<br><br>Reference 8: 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(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br><br>Reference 9: 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(21))<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_IncomeLossFromContinuingOperationsPerDilutedShare</td>
</tr>
<tr>
<td style="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_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 income (loss) from a discontinued operation attributable to the parent. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=d3e957-107759<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3A<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=SL51721523-107759<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3B<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=SL51721525-107759<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=d3e1361-107760<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5C<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721675-107760<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721673-107760<br><br>Reference 7: 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 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=d3e1012-107759<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Per basic share amount, after tax, of income (loss) from the day-to-day business activities of the discontinued operation and gain (loss) from the disposal of the discontinued operation.</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 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 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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 3: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1278-109256<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(19))<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 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(12))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<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://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(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(14))<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_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare</td>
</tr>
<tr>
<td style="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_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Per diluted share amount, after tax, of income (loss) from the day-to-day business activities of the discontinued operation and gain (loss) from the disposal of the discontinued operation.</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 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 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 5<br> -Subparagraph (SAB Topic 5.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=27015204&amp;loc=d3e355146-122828<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 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=SL5780133-109256<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 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1278-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_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare</td>
</tr>
<tr>
<td style="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_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>17
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6666487024">
<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>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Oct. 30, 2017</div></th>
<th class="th"><div>Dec. 31, 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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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>
<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>18
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827309456">
<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, 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_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">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
<td class="nump">$ 143,694<span></span>
</td>
</tr>
<tr 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, ($5), and ($22) in 2018, 2017, and 2016, respectively</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">4<span></span>
</td>
<td class="num">(567)<span></span>
</td>
</tr>
<tr class="re">
<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="num">(41)<span></span>
</td>
<td class="nump">398<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="num">(37)<span></span>
</td>
<td class="num">(169)<span></span>
</td>
</tr>
<tr class="re">
<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 $188, $2, and $248 in 2018, 2017, and 2016, respectively</a></td>
<td class="num">(1,185)<span></span>
</td>
<td class="nump">703<span></span>
</td>
<td class="nump">1,672<span></span>
</td>
</tr>
<tr class="re">
<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">(501)<span></span>
</td>
<td class="num">(829)<span></span>
</td>
<td class="num">(191)<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="num">(1,686)<span></span>
</td>
<td class="num">(126)<span></span>
</td>
<td class="nump">1,481<span></span>
</td>
</tr>
<tr 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, net of tax of $0, $0 and ($228) in 2018, 2017, and 2016, respectively</a></td>
<td class="num">(4,216)<span></span>
</td>
<td class="nump">21,992<span></span>
</td>
<td class="num">(5,616)<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">(4,216)<span></span>
</td>
<td class="nump">21,992<span></span>
</td>
<td class="num">(5,616)<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 gain (loss), net of tax</a></td>
<td class="num">(5,902)<span></span>
</td>
<td class="nump">21,829<span></span>
</td>
<td class="num">(4,304)<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">$ 213,365<span></span>
</td>
<td class="nump">$ 198,541<span></span>
</td>
<td class="nump">$ 139,390<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>19
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827531632">
<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, 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_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="num">$ (5)<span></span>
</td>
<td class="num">$ (22)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">188<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="nump">248<span></span>
</td>
</tr>
<tr class="ro">
<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="num">$ (228)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>20
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842607792">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS - USD ($)<br></strong></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_AssetsCurrentAbstract', window );"><strong>Current assets:</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>
</tr>
<tr class="ro">
<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 108,212,000<span></span>
</td>
<td class="nump">$ 106,582,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 );">Short-term investments</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">427,348,000<span></span>
</td>
<td class="nump">297,961,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,646 and $1,568 in 2018 and 2017, respectively</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">119,172,000<span></span>
</td>
<td class="nump">119,388,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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">8,312,000<span></span>
</td>
<td class="nump">7,454,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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">83,282,000<span></span>
</td>
<td class="nump">67,923,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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">34,000,000<span></span>
</td>
<td class="nump">30,683,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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">780,326,000<span></span>
</td>
<td class="nump">629,991,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 );">Long-term investments</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">262,039,000<span></span>
</td>
<td class="nump">423,441,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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">91,396,000<span></span>
</td>
<td class="nump">78,048,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_Goodwill', window );">Goodwill</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">113,208,000<span></span>
</td>
<td class="nump">113,208,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_FiniteLivedIntangibleAssetsNet', window );">Intangible assets, net</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">10,113,000<span></span>
</td>
<td class="nump">13,189,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_DeferredTaxAssetsNetNoncurrent', window );">Deferred income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">28,660,000<span></span>
</td>
<td class="nump">27,385,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_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,925,000<span></span>
</td>
<td class="nump">2,491,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_Assets', window );">Total assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,289,667,000<span></span>
</td>
<td class="nump">1,287,753,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_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities:</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>
</tr>
<tr class="re">
<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">16,230,000<span></span>
</td>
<td class="nump">23,463,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_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">60,220,000<span></span>
</td>
<td class="nump">68,249,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_AccruedIncomeTaxesCurrent', window );">Accrued income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">5,062,000<span></span>
</td>
<td class="nump">11,503,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_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue and customer deposits</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">9,845,000<span></span>
</td>
<td class="nump">9,420,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_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">91,357,000<span></span>
</td>
<td class="nump">112,635,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_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">962,000<span></span>
</td>
<td class="nump">312,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_LiabilityForUncertainTaxPositionsNoncurrent', window );">Reserve for income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">7,106,000<span></span>
</td>
<td class="nump">6,488,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_AccruedIncomeTaxesNoncurrent', window );">Accrued income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">51,113,000<span></span>
</td>
<td class="nump">66,741,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_OtherLiabilitiesNoncurrent', window );">Other non-current liabilities</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,866,000<span></span>
</td>
<td class="nump">5,904,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_Liabilities', window );">Total liabilities</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">154,404,000<span></span>
</td>
<td class="nump">192,080,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_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 10)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 and 200,000 shares in 2018 and 2017, respectively, issued and outstanding: 170,820 and 173,507 shares in 2018 and 2017, respectively</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">342,000<span></span>
</td>
<td class="nump">347,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="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">529,208,000<span></span>
</td>
<td class="nump">461,338,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="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">646,214,000<span></span>
</td>
<td class="nump">668,587,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="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="num">(40,501,000)<span></span>
</td>
<td class="num">(34,599,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="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">1,135,263,000<span></span>
</td>
<td class="nump">1,095,673,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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1,289,667,000<span></span>
</td>
<td class="nump">$ 1,287,753,000<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 amounts have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend</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_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_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_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_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_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_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>21
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827296352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS (Parenthetical)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($) </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>
</tr>
<tr class="re">
<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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,568<span></span>
</td>
<td class="nump">$ 1,568<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_CommonStockParOrStatedValuePerShare', window );">Common stock par value, in dollars per share | $ / shares</a></td>
<td class="nump">$ 0.002<span></span>
</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">200,000,000<span></span>
</td>
<td class="nump">200,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">173,507,000<span></span>
</td>
<td class="nump">173,507,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">173,507,000<span></span>
</td>
<td class="nump">173,507,000<span></span>
</td>
<td class="nump">170,820,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="nump">2<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_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_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_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_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>22
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842486832">
<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, 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_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">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
<td class="nump">$ 143,694<span></span>
</td>
</tr>
<tr class="re">
<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_GainLossOnSaleOfBusiness', window );">Loss on sale of discontinued business</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">255<span></span>
</td>
</tr>
<tr class="re">
<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">41,090<span></span>
</td>
<td class="nump">31,942<span></span>
</td>
<td class="nump">20,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_Depreciation', window );">Depreciation of property, plant, and equipment</a></td>
<td class="nump">18,473<span></span>
</td>
<td class="nump">13,683<span></span>
</td>
<td class="nump">11,678<span></span>
</td>
</tr>
<tr class="re">
<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,076<span></span>
</td>
<td class="nump">3,308<span></span>
</td>
<td class="nump">3,391<span></span>
</td>
</tr>
<tr class="ro">
<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">469<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_AccretionAmortizationOfDiscountsAndPremiumsInvestments', window );">Amortization of discounts or premiums on investments</a></td>
<td class="nump">108<span></span>
</td>
<td class="nump">205<span></span>
</td>
<td class="nump">383<span></span>
</td>
</tr>
<tr class="ro">
<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">(501)<span></span>
</td>
<td class="num">(829)<span></span>
</td>
<td class="num">(1,506)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Revaluation of contingent consideration</a></td>
<td class="num">(3)<span></span>
</td>
<td class="num">(28)<span></span>
</td>
<td class="num">(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_IncreaseDecreaseInDeferredIncomeTaxes', window );">Change in deferred income taxes</a></td>
<td class="num">(413)<span></span>
</td>
<td class="nump">1,787<span></span>
</td>
<td class="num">(1,908)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable</a></td>
<td class="num">(1,867)<span></span>
</td>
<td class="num">(55,185)<span></span>
</td>
<td class="num">(13,251)<span></span>
</td>
</tr>
<tr class="ro">
<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="num">(906)<span></span>
</td>
<td class="num">(4,604)<span></span>
</td>
<td class="num">(2,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_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="num">(16,946)<span></span>
</td>
<td class="num">(37,088)<span></span>
</td>
<td class="nump">10,409<span></span>
</td>
</tr>
<tr class="ro">
<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="num">(9,750)<span></span>
</td>
<td class="num">(7,016)<span></span>
</td>
<td class="num">(5,421)<span></span>
</td>
</tr>
<tr class="re">
<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="num">(7,247)<span></span>
</td>
<td class="nump">12,322<span></span>
</td>
<td class="nump">2,087<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">380<span></span>
</td>
<td class="nump">14,476<span></span>
</td>
<td class="nump">7,771<span></span>
</td>
</tr>
<tr class="re">
<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="num">(21,903)<span></span>
</td>
<td class="nump">71,335<span></span>
</td>
<td class="nump">1,270<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">1,434<span></span>
</td>
<td class="nump">1,619<span></span>
</td>
<td class="nump">3,622<span></span>
</td>
</tr>
<tr class="re">
<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="num">(838)<span></span>
</td>
<td class="nump">1,215<span></span>
</td>
<td class="nump">1,820<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_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">223,454<span></span>
</td>
<td class="nump">224,323<span></span>
</td>
<td class="nump">182,081<span></span>
</td>
</tr>
<tr class="re">
<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="ro">
<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">(782,032)<span></span>
</td>
<td class="num">(636,856)<span></span>
</td>
<td class="num">(751,868)<span></span>
</td>
</tr>
<tr class="re">
<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">812,565<span></span>
</td>
<td class="nump">584,464<span></span>
</td>
<td class="nump">657,250<span></span>
</td>
</tr>
<tr class="ro">
<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">(37,095)<span></span>
</td>
<td class="num">(28,754)<span></span>
</td>
<td class="num">(12,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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash paid for acquisition of business, net of cash acquired</a></td>
<td class="num">(4,265)<span></span>
</td>
<td class="num">(24,118)<span></span>
</td>
<td class="num">(14,285)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="num">(291)<span></span>
</td>
<td class="num">(113)<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_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(10,827)<span></span>
</td>
<td class="num">(105,555)<span></span>
</td>
<td class="num">(121,832)<span></span>
</td>
</tr>
<tr class="ro">
<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="re">
<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">26,783<span></span>
</td>
<td class="nump">54,557<span></span>
</td>
<td class="nump">43,468<span></span>
</td>
</tr>
<tr class="ro">
<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">(203,822)<span></span>
</td>
<td class="num">(123,715)<span></span>
</td>
<td class="num">(47,149)<span></span>
</td>
</tr>
<tr class="re">
<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">(31,865)<span></span>
</td>
<td class="num">(29,037)<span></span>
</td>
<td class="num">(25,213)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForPreviousAcquisition', window );">Payment of contingent consideration</a></td>
<td class="num">(1,000)<span></span>
</td>
<td class="num">(1,926)<span></span>
</td>
<td class="num">(337)<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_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="num">(209,904)<span></span>
</td>
<td class="num">(100,121)<span></span>
</td>
<td class="num">(29,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_EffectOfExchangeRateOnCashAndCashEquivalents', window );">Effect of foreign exchange rate changes on cash and cash equivalents</a></td>
<td class="num">(1,093)<span></span>
</td>
<td class="nump">8,294<span></span>
</td>
<td class="num">(3,352)<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_CashAndCashEquivalentsPeriodIncreaseDecrease', window );">Net change in cash and cash equivalents</a></td>
<td class="nump">1,630<span></span>
</td>
<td class="nump">26,941<span></span>
</td>
<td class="nump">27,666<span></span>
</td>
</tr>
<tr class="ro">
<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">106,582<span></span>
</td>
<td class="nump">79,641<span></span>
</td>
<td class="nump">51,975<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents at end 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>
</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_GainLossOnSaleOfBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 gain (loss) from sale and disposal of integrated set of activities and assets capable of being conducted and managed for purpose of providing return in form of dividend, lower cost, or other economic benefit to investor, owner, member and participant.</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 (b)<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 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4582445-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_GainLossOnSaleOfBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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>23
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842948400">
<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" colspan="2"><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, 2015</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 832,331,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">$ 340,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="nump">$ 310,829,000<span></span>
</td>
<td colspan="2" class="nump">$ 573,286,000<span></span>
</td>
<td class="num">$ (52,124,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, 2015</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">169,712<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="fn" style="border-bottom: 0px;"></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">43,468,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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">43,460,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="fn" style="border-bottom: 0px;"></td>
<td class="nump">3,954<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">(47,149,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">$ (4,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">(47,145,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="fn" style="border-bottom: 0px;"></td>
<td class="num">(1,788)<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">20,558,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="nump">20,558,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">(25,213,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="num">(25,213,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">143,694,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="nump">143,694,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="num">(567,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(567,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="nump">398,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="nump">398,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">1,672,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="nump">1,672,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">(191,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(191,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">(5,616,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(5,616,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, 2016</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">963,385,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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 );">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="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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">54,557,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="re">
<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="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="re">
<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="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="re">
<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="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="re">
<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="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="re">
<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="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="fn" style="border-bottom: 0px;"><sup>[2]</sup></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></sup></td>
<td class="nump">173,507<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">173,507<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_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="fn" style="border-bottom: 0px;"></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_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption', window );">Adjustment as a result of the adoption of ASU 2016-06 Income Taxes - Intra-Entity Transfers Other than Inventory (Note 17)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">$ (5,961,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td 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="re">
<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="fn" style="border-bottom: 0px;"></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="ro">
<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">1,493<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">1,493<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">$ (203,822,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="re">
<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="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="re">
<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="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="fn" style="border-bottom: 0px;"></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="num">(1,185,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td 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="re">
<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="fn" style="border-bottom: 0px;"></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="ro">
<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="fn" style="border-bottom: 0px;"></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="fn" style="border-bottom: 0px;"><sup>[2]</sup></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="fn" style="border-bottom: 0px;"></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><td colspan="11"></td></tr>
<tr><td colspan="11"><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>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[2]</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</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>24
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827034832">
<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, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($)</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_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_StockholdersEquityNoteStockSplitConversionRatio1', window );">Stock split</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="num">$ (5)<span></span>
</td>
<td class="num">$ (22)<span></span>
</td>
</tr>
<tr class="ro">
<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">188<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="nump">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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax', window );">Tax benefit of foreign currency translation adjustment</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (228)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
<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>25
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833105360">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Summary of Significant Accounting Policies</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Nature of Operations</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 tasks, primarily in manufacturing processes, where vision is required.</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Use of Estimates in the Preparation of Financial Statements</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Basis of Consolidation</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Foreign Currency Translation</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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).</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Fair Value Measurements</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Cash, Cash Equivalents, and Investments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Money market instruments and debt securities  with original maturities of three months or less are classified as cash equivalents and are stated at amortized cost.  Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments, as well as equity securities that the Company intends to sell within one year.  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 </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;"> years.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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).  Equity securities that are held for short periods of time with the intention of selling them in the near term are designated as trading and are reported at fair value, with unrealized gains and losses recorded in current operations.  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 </font><font style="font-family:Arial;font-size:10pt;">5%</font><font 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.  </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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). </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Inventories</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Property, Plant, and Equipment</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">39</font><font style="font-family:Arial;font-size:10pt;"> years, building improvements&#8217; useful lives are </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;"> years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from </font><font style="font-family:Arial;font-size:10pt;">two</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;"> years.  Leasehold improvements are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases.  Maintenance and repairs are expensed when incurred; additions and improvements are capitalized.  Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Internal-use Software</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Goodwill</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Intangible Assets</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">eleven</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">twelve</font><font style="font-family:Arial;font-size:10pt;"> years, of completed technologies from </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">seven</font><font style="font-family:Arial;font-size:10pt;"> years, of customer relationships from </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">eight</font><font style="font-family:Arial;font-size:10pt;"> years, and of non-compete agreements </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;"> years.  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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Warranty Obligations</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">one</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;"> years 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Contingencies</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue Recognition</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Contract with the Customer</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Performance Obligations in the Contract</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.   </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Determining the Transaction Price</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Allocating the Transaction Price to the Performance Obligations</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">30</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">90</font><font style="font-family:Arial;font-size:10pt;"> 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.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Research and Development</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Advertising Costs</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Advertising costs are expensed as incurred and totaled </font><font style="font-family:Arial;font-size:10pt;">$1,662,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$1,679,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$1,674,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock-Based Compensation</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s share-based payments that result in compensation expense consist of stock option grants and restricted stock awards.  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 granting of restricted stock.  When a stock option is exercised or a restricted stock award is granted, 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company recognizes compensation expense related to stock options 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 as if the option were, in substance, multiple awards.  The amount of compensation expense recognized at the end of the vesting period is based upon the number of stock options for which the requisite service has been completed. No compensation expense is recognized for options 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 option.  The Company applies estimated forfeiture rates to its unvested options 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 option, 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 a credit to expense is recorded related to those employees that have not rendered the requisite service.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Taxes</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Net Income Per Share</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Comprehensive Income</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, as of December 31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;"> and December 31, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, consists of foreign currency translation adjustments of </font><font style="font-family:Arial;font-size:10pt;">$37,486,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$33,270,000</font><font style="font-family:Arial;font-size:10pt;">, respectively; net unrealized losses on available-for-sale investments of </font><font style="font-family:Arial;font-size:10pt;">$1,744,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$58,000</font><font style="font-family:Arial;font-size:10pt;">, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of </font><font style="font-family:Arial;font-size:10pt;">$1,271,000</font><font style="font-family:Arial;font-size:10pt;"> in each year. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Amounts reclassified from accumulated other comprehensive income to investment income on the Consolidated Statements of Operations were net realized gains of </font><font style="font-family:Arial;font-size:10pt;">$501,000</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$829,000</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$191,000</font><font style="font-family:Arial;font-size:10pt;"> for </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">, respectively.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Concentrations of Risk</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Derivative Instruments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Business Combinations</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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.</font></div></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_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>26
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824897120">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;"> New Pronouncements</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2016-02, 2018-11, and 2018-20, "Leases"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2016-02 creates Topic 842, Leases.  The objective of this ASU is to increase transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet, and disclosing key information about leasing arrangements.  This ASU applies to any entity that enters into a lease, although lessees will see the most significant changes.  The main difference between prior GAAP and Topic 842 is the recognition of lease assets and lease liabilities on the balance sheet for those leases classified as operating leases under prior GAAP.  Topic 842 distinguishes between finance leases and operating leases, which are substantially similar to the classification criteria for distinguishing between capital leases and operating leases under prior GAAP.  For public companies, the guidance in ASU 2016-02 is effective for annual periods beginning after December 15, 2018, and interim periods within those fiscal years.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In July 2018, the Financial Accounting Standards Board issued ASU 2018-11 to amend ASU 2016-02 and provided an additional (and optional) transition method to adopt the new lease standard.  This transition method allows entities to apply the new lease standard at the adoption date and recognize a cumulative-effect adjustment to the opening balance of retained earnings in the period of adoption instead of using the original modified retrospective transition method of adoption which required the restatement of all prior-period financial statements.  Under this new transition method, the comparative periods in the financial statements will continue to be presented in accordance with prior GAAP.  Management will adopt the new lease standard on a prospective basis using this new transition method under ASU 2018-11.  In December 2018, the Financial Accounting Standards Board issued ASU 2018-20 to provide additional implementation guidance.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of the date of this report, management has determined the scope of leases subject to the new accounting requirements, completed the implementation of a lease software package to assist with compliance, trained relevant employees, and finalized the lease accounting policy as well as the related business processes and internal controls.  Management expects the adoption of the new lease rule will result in the recognition of lease assets and lease liabilities of approximately </font><font style="font-family:Arial;font-size:10pt;">$20,000,000</font><font style="font-family:Arial;font-size:10pt;"> on the Consolidated Balance Sheet.  Management does not expect the adoption to have a significant impact on the Statement of Operations or Statement of Cash Flows.  Furthermore, the adoption of this rule will result in additional lease disclosures. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2016-13, "Financial Instruments - Measurement of Credit Losses"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 (debt securities).&#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 on available-for-sale debt securities 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.  For public companies, the guidance in ASU 2016-13 is effective for annual periods beginning after December 15, 2019, and interim periods within those fiscal years.&#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.&#160; Management does not expect ASU 2016-13 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2017-08, "Receivables - Nonrefundable Fees and Other Costs - Premium Amortization on Purchased Callable Debt Securities"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2017-08 applies to all reporting entities that hold investments in callable debt securities that have an amortized cost basis in excess of the amount that is repayable by the issuer at the earliest call date (that is, at a premium). The amendments in this ASU shorten the amortization period for certain callable debt securities held at a premium. Specifically, the amendments require the premium to be amortized to the earliest call date.  The amendments do not require an accounting change for securities held at a discount; the discount continues to be amortized to maturity.   Under current GAAP, premiums and discounts on callable debt securities generally are amortized to the maturity date. If that callable debt security is subsequently called, the entity records a loss equal to the unamortized premium.  The amendments in this ASU more closely align the amortization period of premiums and discounts to expectations incorporated in market pricing on the underlying securities.  For public companies, the amendments in ASU 2017-08 are effective for annual periods beginning after December 15, 2019, and interim reporting periods within fiscal years beginning after December 15, 2020.  This ASU should be applied on a modified retrospective basis through a cumulative-effect adjustment directly to retained earnings as of the beginning of the period of adoption, and, in the period of adoption, the entity is required to provide disclosures about the change in accounting principle.  Early adoption is permitted, including adoption in an interim period.  Management does not expect ASU 2017-08 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2017-12, "Derivatives and Hedging - Targeted Improvements to Accounting for Hedging Activities"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2017-12 applies to all reporting entities that elect to apply hedge accounting.  The hedge accounting requirements under current GAAP sometimes do not permit an entity to properly recognize the economic results of the hedging strategy in the financial statements, and they are difficult to understand and interpret.  The amendments in this ASU make certain targeted improvements to simplify the application of the hedge accounting guidance.  Also, they better align the risk management activities and financial reporting for hedging relationships through changes to both 1) the designation and measurement guidance for qualifying hedging relationships and 2) the presentation of hedge results.  For public companies, the amendments in ASU 2017-12 are effective for annual reporting periods beginning after December 15, 2018, and interim reporting periods within those fiscal years.  Early adoption is permitted including adoption in any interim period after issuance of the ASU.  All transition requirements and elections should be applied to hedging relationships existing on the date of adoption.  The entity should apply a cumulative-effect adjustment related to eliminating the separate measurement of ineffectiveness to accumulated other comprehensive income with a corresponding adjustment to the opening balance of retained earnings as of the beginning of the fiscal year that an entity adopts the amendments in this ASU.  The amended presentation and disclosure guidance is required only prospectively.  Management does not expect ASU 2017-12 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-01, "Land Easement Practical Expedient for Transition to Topic 842"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2018-01 applies to entities with land easements that exist or expired before an entity&#8217;s adoption of Topic 842, provided that the entity does not account for those land easements as leases under Topic 840.  The amendments in this ASU permit an entity to elect an optional transition practical expedient to not evaluate under Topic 842 land easements that exist or expired before the entity&#8217;s adoption of Topic 842 and that were not previously accounted for as leases under Topic 840.  An entity that elects this practical expedient should apply the practical expedient consistently to all of its existing or expired land easements that were not previously accounted for as leases under Topic 840.  Once an entity adopts Topic 842, it should apply that Topic prospectively to all new (or modified) land easements to determine whether the arrangement should be accounted for as a lease.  An entity that does not elect this practical expedient should evaluate all existing or expired land easements in connection with the adoption of the new lease requirements in Topic 842 to assess whether they meet the definition of a lease.  The amendments in this ASU affect the amendments in ASU 2016-02, which are not yet effective but may be early adopted.  The effective date and transition requirements for the amendments are the same as the effective date and transition requirements in ASU 2016-02, which is for annual periods beginning after December 15, 2018, and interim periods within those fiscal years.  Management does not expect ASU 2018-01 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-02, "Income Statement - Reporting Comprehensive Income"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2018-02 applies to entities required to apply the provisions of Topic 220, Income Statement - Reporting Comprehensive Income, and has items of other comprehensive income for which the related tax effects are presented in other comprehensive income as required by GAAP.  The amendments in this ASU allow a reclassification from accumulated other comprehensive income to retained earnings for stranded tax effects resulting from the Tax Cuts and Jobs Act of 2017 (the "Tax Act").  Consequently, the amendments eliminate the stranded tax effects resulting from the Tax Act and will improve the usefulness of information reported to financial statement users.  However, because the amendments only relate to the reclassification of the income tax effects of the Tax Act, the underlying guidance that requires the effect of a change in tax laws or rates to be included in income from continuing operations is not affected.  The amendments in this ASU also require certain disclosures about stranded tax effects.  The amendments in this ASU are effective for all entities for fiscal years beginning after December 15, 2018, and interim periods within those fiscal years.  Early adoption of the amendments in this ASU is permitted, including adoption in any interim period.  The amendments in this ASU should be applied either in the period of adoption or retrospectively to each period (or periods) in which the effect of the change in the U.S. federal corporate income tax rate in the Tax Act is recognized.  Management does not expect ASU 2018-02 to have a material impact on the Company's financial statements and disclosures. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-07, "Compensation - Stock Compensation - Improvements to Nonemployee Share-Based Payment Accounting"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">ASU 2018-07 applies to all entities that enter into share-based payment transactions for acquiring goods and services from nonemployees.  The amendments in this ASU expand the scope of Topic 718, Compensation - Stock Compensation, to include share-based payments transactions to nonemployees.  Changes to the accounting for nonemployee awards as a result of this ASU include: 1) equity-classified nonemployee share-based payment awards are measured at the grant date, instead of the previous requirement to remeasure the awards through the performance completion date, 2) for awards with performance conditions, compensation cost is recognized when the achievement of the performance condition is probable, rather than upon achievement, and 3) the current requirement to reassess the classification (equity or liability) for nonemployee awards upon vesting is eliminated.  This ASU clarifies that Topic 718 does not apply to financing transactions or awards granted to customers as part of a contract accounted for under Topic 606, Revenue from Contracts with Customers.  The amendments in this ASU are effective for public business entities for fiscal years beginning after December 15, 2018, and interim periods within those fiscal years.  An entity should only remeasure liability-classified awards that have not been settled by the date of adoption and equity-classified awards for which the measurement date has not been established through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption.  Management does not expect ASU 2018-07 to have a material impact on the Company's financial statements and disclosures.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software"</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 fiscal years beginning after December 15, 2019, and interim periods within those fiscal years, with early adoption permitted.  Management does not expect ASU 2018-15 to have a material impact on the Company's financial statement and disclosures.</font></div></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>XML
<SEQUENCE>27
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6832999968">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Fair Value Measurements</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;"> (in thousands):</font><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" rowspan="1"></td></tr><tr><td style="width:50%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Quoted&#160;Prices&#160;in</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Active Markets</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">for Identical</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Assets (Level&#160;1)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Significant&#160;Other</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Observable</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Inputs (Level&#160;2)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unobservable Inputs                       (Level 3)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Assets:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Money market instruments</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,557</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">300,437</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">231,237</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">132,038</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,417</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,337</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Liabilities:</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">106</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Contingent consideration liabilities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,544</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company did not record an other-than-temporary impairment of these financial assets in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, or </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,173</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Payment of EnShape contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,401</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Payment of Manatee contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(525</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Contingent consideration resulting from GVi acquisition</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,299</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Manatee contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(325</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">15</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">282</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes </font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">39</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;background-color:#cceeff;">Balance as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,557</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Manatee contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,350</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">282</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,065</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Payment of GVi contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,554</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font><font style="font-family:Arial;font-size:10pt;">In 2017, the Company determined that the carrying value of the customer relationships </font><font style="font-family:Arial;font-size:10pt;">arising </font><font style="font-family:Arial;font-size:10pt;">from the AQSense acquisition was impaired and reduced this value to zero</font><font style="font-family:Arial;font-size:10pt;">,</font><font style="font-family:Arial;font-size:10pt;"> re</font><font style="font-family:Arial;font-size:10pt;">sulting in</font><font style="font-family:Arial;font-size:10pt;"> an impairment charge</font><font style="font-family:Arial;font-size:10pt;"> of </font><font style="font-family:Arial;font-size:10pt;">$469,000</font><font style="font-family:Arial;font-size:10pt;">.</font><font style="font-family:Arial;font-size:10pt;">  The Company did not record an impairment charge related to non-financial assets in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;"> or </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.</font></div></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>28
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833088784">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Cash, Cash Equivalents, and Investments</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash, cash equivalents, and investments consisted of the following (in thousands):</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" rowspan="1"></td></tr><tr><td style="width:66%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">104,655</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">97,951</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Money market instruments</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,557</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,631</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">108,212</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">106,582</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">198,477</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">150,371</font></div></td><td style="vertical-align:bottom;border-top:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">137,871</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">47,395</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">78,407</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">59,203</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">8,101</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">21,579</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,805</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">10,608</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Short-term investments</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">427,348</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">297,961</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">162,566</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">296,014</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">53,631</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">71,727</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">32,760</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">23,459</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,316</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,147</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,890</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">845</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,204</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-term investments</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">262,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">423,441</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">797,599</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">827,984</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s cash balance included foreign bank balances totaling </font><font style="font-family:Arial;font-size:10pt;">$67,502,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$66,777,000</font><font style="font-family:Arial;font-size:10pt;"> as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, respectively.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills consist of debt securities issued by</font><font style="font-family:Arial;font-size:10pt;"> the U.S. government; corporate bonds consist of debt securities issued by both domestic and foreign companies; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;"> (in thousands):</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="16" rowspan="1"></td></tr><tr><td style="width:37%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortized</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Cost</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gains</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Losses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Fair Value</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Short-term:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">198,512</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">38</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(73</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">198,477</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">138,219</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(375</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">137,871</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,628</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">15</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(236</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,407</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,135</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(34</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,101</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-term:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">163,847</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">107</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,388</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,566</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">53,693</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">55</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(117</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">53,631</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,722</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">51</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(13</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,760</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,316</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,930</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(9</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">855</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">845</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">691,319</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">323</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(2,255</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">689,387</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;"> (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24" rowspan="1"></td></tr><tr><td style="width:35%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Position For Less than</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">12 Months</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss<br clear="none"/>Position For Greater than<br clear="none"/>12 Months</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Losses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br clear="none"/>Losses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br clear="none"/>Losses</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">145,596</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,268</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">99,886</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(495</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">245,482</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,763</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">114,836</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(73</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,850</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(13</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">128,686</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(86</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">47,762</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(91</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">44,585</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(262</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">92,347</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(353</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(4</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,609</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(30</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,101</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(34</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency Bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,920</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(9</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,920</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(9</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,302</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">845</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,147</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">318,908</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(1,445</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">163,775</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(810</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">482,683</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(2,255</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company recorded gross realized gains on the sale of debt securities totaling </font><font style="font-family:Arial;font-size:10pt;">$669,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$929,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$292,000</font><font style="font-family:Arial;font-size:10pt;"> in 2016, and gross realized losses on the sale of debt securities totaling </font><font style="font-family:Arial;font-size:10pt;">$168,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$100,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$101,000</font><font style="font-family:Arial;font-size:10pt;"> in 2016.  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). </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;"> (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="28" rowspan="1"></td></tr><tr><td style="width:25%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:7%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:7%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:7%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:7%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">&lt;1&#160;Year</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">1-2&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2-3&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">3-4&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">4-5&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">5-7&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">137,871</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">81,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">56,459</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">20,060</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,126</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">300,437</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">198,477</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,760</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">231,237</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,407</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27,665</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,715</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,004</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,416</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,831</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">132,038</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,101</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,316</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,417</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">845</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,337</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">427,348</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">149,507</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">64,174</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">36,985</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,542</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,831</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">689,387</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>29
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824980736">
<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, 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>
</tr>
<tr class="ro">
<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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Inventories</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventories consisted of the following (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8" rowspan="1"></td></tr><tr><td style="width:71%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Raw materials</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">42,738</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">33,927</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Work-in-process</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,435</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,114</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Finished goods</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">37,109</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">31,882</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">83,282</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">67,923</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>30
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825109552">
<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, 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>
</tr>
<tr class="ro">
<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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Property, Plant, and Equipment</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment consisted of the following (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8" rowspan="1"></td></tr><tr><td style="width:71%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Land</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,951</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,951</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Buildings</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">24,533</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">24,589</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Building improvements</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">45,067</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">33,189</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Leasehold improvements</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,095</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,513</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Computer hardware and software</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">66,542</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">61,835</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Manufacturing test equipment</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">27,378</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">21,312</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Furniture and fixtures</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,904</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,363</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">183,470</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">157,752</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Less: accumulated depreciation</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(92,074</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(79,704</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">91,396</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,048</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The cost of disposed property, plant, and equipment totaling </font><font style="font-family:Arial;font-size:10pt;">$6,367,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">$6,327,000</font><font style="font-family:Arial;font-size:10pt;"> was removed from both the asset and accumulated depreciation balances in </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2017</font><font style="font-family:Arial;font-size:10pt;">, respectively.  Gains and losses on these disposals were immaterial in both periods.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Buildings include rental property with a cost basis of </font><font style="font-family:Arial;font-size:10pt;">$800,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$5,750,000</font><font style="font-family:Arial;font-size:10pt;"> as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, respectively, and accumulated depreciation of </font><font style="font-family:Arial;font-size:10pt;">$234,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$3,069,000</font><font style="font-family:Arial;font-size:10pt;"> as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, respectively.</font></div></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>31
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6832945552">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Goodwill</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The changes in the carrying value of goodwill were as follows (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5" rowspan="1"></td></tr><tr><td style="width:84%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">95,280</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Acquisition of ViDi Systems, S.A. </font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,333</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Acquisition of GVi Ventures, Inc.</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,476</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment to EnShape goodwill</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,881</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">113,208</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">113,208</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.  </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">For its </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;"> analysis of goodwill, management elected to perform a qualitative assessment</font><font style="font-family:Arial;font-size:10pt;">.  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.</font></div></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>32
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833105360">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Intangible Assets</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Amortized intangible assets consisted of the following (in thousands):</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="12" rowspan="1"></td></tr><tr><td style="width:53%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Distribution networks</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">38,060</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">38,060</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,687</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,619</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,068</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">8,607</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,716</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,891</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-compete agreements</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">370</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">216</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">154</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">60,724</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">50,611</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,113</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Distribution networks</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">38,060</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">38,060</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,687</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,181</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,506</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,607</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,202</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,405</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-compete agreements</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">370</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">92</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">278</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">60,724</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">47,535</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,189</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5" rowspan="1"></td></tr><tr><td style="width:82%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,701</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,185</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2022</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,691</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2023</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">989</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Thereafter</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">530</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,113</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>33
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824997376">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Accrued Expenses</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses consisted of the following (in thousands):</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" rowspan="1"></td></tr><tr><td style="width:65%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Salaries, commissions, and payroll taxes</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">11,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,944</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Company bonuses</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,134</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,721</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Vacation</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,507</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,479</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign retirement obligations</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,816</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,260</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Warranty obligations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,743</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,701</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Acquisition deferred and contingent liabilities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">431</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,022</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">23,550</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">24,122</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">60,220</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">68,249</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The changes in the warranty obligation were as follows (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4" rowspan="1"></td></tr><tr><td style="width:82%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:16%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,335</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,843</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(3,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">632</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,701</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,184</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(4,024</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(118</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,743</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>34
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833044816">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Commitments and Contingencies</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Commitments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</font><font style="font-family:Arial;font-size:10pt;">, the Company had outstanding purchase orders totaling </font><font style="font-family:Arial;font-size:10pt;">$11,097,000</font><font 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 2018.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company conducts certain of its operations in leased facilities.  These lease agreements expire at various dates through 2025 and are accounted for as operating leases.  Certain of these leases contain renewal options, retirement obligations, escalation clauses, rent holidays, and leasehold improvement incentives.  Annual rental expense totaled </font><font style="font-family:Arial;font-size:10pt;">$8,186,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$6,738,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$6,090,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Future minimum rental payments under these agreements are as follows (in thousands):</font></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.41520467836257%;border-collapse:collapse;text-align:left;"><tr><td colspan="5" rowspan="1"></td></tr><tr><td style="width:84%;" rowspan="1" colspan="1"></td><td style="width:3%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,086</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,227</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2022</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,918</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2023</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,209</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Thereafter</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,198</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">22,747</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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 agreements that will expire in 2022.  The Company had an additional tenant whose lease expired in November 2018.  Annual rental income totaled </font><font style="font-family:Arial;font-size:10pt;">$1,116,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$1,474,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$1,911,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.  Rental income and related expenses are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations.  Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5" rowspan="1"></td></tr><tr><td style="width:84%;" rowspan="1" colspan="1"></td><td style="width:3%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2022</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,228</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Contingencies</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div></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>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824997376">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Indemnification Provisions</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Under the terms of the Company&#8217;s sale of its Surface Inspection Systems Division (SISD) to AMETEK, Inc., the Company agreed to retain certain liabilities in connection with its business dealings occurring prior to the transaction closing date of July 6, 2015, and to indemnify AMETEK, Inc. in connection with these retained liabilities and for any breach of the representations and warranties made by the Company to AMETEK, Inc. in connection with the sale agreement itself, as is usual and customary in such transactions.  A binding arbitration was concluded in 2016 with respect to certain product performance claims made by an SISD customer, for which the Company remained responsible under the indemnity provisions of the sale transaction.  In that proceeding, the tribunal ordered the Company to pay the customer approximately </font><font style="font-family:Arial;font-size:10pt;">$326,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing a refund of the product purchase price.  The tribunal also ordered the customer to pay the Company approximately </font><font style="font-family:Arial;font-size:10pt;">$45,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing reimbursement of legal fees.  The net settlement of </font><font style="font-family:Arial;font-size:10pt;">$281,000</font><font style="font-family:Arial;font-size:10pt;"> was recorded in discontinued operations in 2016.</font></div></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>36
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842979072">
<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, 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>
</tr>
<tr class="ro">
<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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Derivative Instruments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 enters 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 </font><font style="font-family:Arial;font-size:10pt;">45 days</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">18 months</font><font 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, 2018 and 2017. </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company had the following outstanding forward contracts (in thousands): </font></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" rowspan="1"></td></tr><tr><td style="width:50%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2017</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Currency</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:10px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="12" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Euro</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">23,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">26,330</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Japanese Yen</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">380,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,459</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">455,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,049</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">British Pound</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,500</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,204</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,650</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,232</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Korean Won</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,125,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,808</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,825,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,708</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Hungarian Forint</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">750,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,685</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">545,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,110</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Taiwanese Dollar</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">55,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,807</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">37,725</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,278</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Canadian Dollar</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">990</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">726</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Singapore Dollar</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">700</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">514</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Swiss Franc</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,365</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,401</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Asset Derivatives</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Liability Derivatives</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" colspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" colspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">December 31, 2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">December 31, 2017</font></div></td></tr><tr><td colspan="20" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">16</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">106</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font 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):</font><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" rowspan="1"></td></tr><tr><td style="width:18%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:19%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Asset Derivatives</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Liability Derivatives</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2017</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of recognized assets</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">16</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of recognized liabilities</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">106</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts offset</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts offset</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net amount of assets presented</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">16</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net amount of liabilities presented</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">106</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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):</font></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" rowspan="1"></td></tr><tr><td style="width:22%;" rowspan="1" colspan="1"></td><td style="width:24%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></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;" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Location in Financial Statements</font></div></td><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December 31,</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</font></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Designated as Hedging Instruments:</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gains (losses) recorded in shareholders' equity (effective portion)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accumulated other comprehensive income (loss), net of tax</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">37</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(438</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">41</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(398</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gains (losses) recognized in current operations</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign currency gain (loss)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(285</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">270</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(515</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the changes in accumulated other comprehensive income (loss), net of tax, related to derivative instruments (in thousands):</font><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" rowspan="1"></td></tr><tr><td style="width:79%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:19%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">37</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net unrealized gain (loss) on cash flow hedges</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Reclassification of net realized (gain) loss on cash flow hedges into current operations</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(41</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>37
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6669082848">
<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, 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>
</tr>
<tr class="ro">
<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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Revenue Recognition</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On January 1, 2018, the Company adopted Accounting Standards Codification (ASC) 606, "Revenue from Contracts with Customers," using the full retrospective method to present all periods reported on a consistent basis.  Accordingly, prior-period results have been restated to apply the provisions of this ASC.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As a result of this adoption, revenue for software-only products sold as part of multiple-deliverable arrangements are no longer deferred when vendor-specific objective evidence of fair value does not exist for the undelivered elements of the arrangement.  This change results in earlier recognition of revenue.  In addition, certain of the Company&#8217;s product accessory sales, which were reported on a net basis, are now reported on a gross basis as a result of applying the expanded guidance in the new standard related to principal versus agent considerations.  This change results in the Company reporting higher revenue and higher cost of revenue when these sales are reported on a gross basis, although the gross margin dollars do not change.  Furthermore, for arrangements that include customer-specified acceptance criteria, revenue is recognized when the Company can objectively determine that control has been transferred to the customer in accordance with the agreed-upon specifications in the contract, which may occur before formal customer acceptance.  This change primarily impacts revenue recognition for arrangements in the logistics industry where certain customer solutions include installed ID products and results in earlier recognition of revenue.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The adoption of the standard impacted our previously-reported results as follows (in thousands): </font></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="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Operations</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;Year Ended December 31, 2017</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">747,950</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,133</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">168,698</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,591</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">187,289</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">579,252</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(458</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">578,794</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">259,319</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(458</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">258,861</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income before income tax expense</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">266,922</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(458</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">266,464</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">89,744</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">89,752</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">177,178</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(466</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">176,712</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="4" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income per weighted-average common and common-equivalent share:</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basic</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.02</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.02</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Diluted</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.99</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(0.01</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.98</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></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="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Operations</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31, 2016</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">520,753</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,762</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">115,590</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">15,480</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">131,070</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">405,163</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6,718</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">398,445</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">160,784</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6,718</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">154,066</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income before income tax expense</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">168,795</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6,718</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,077</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,968</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(840</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,128</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">149,572</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(5,878</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">143,694</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="4" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income per weighted-average common and common-equivalent share:</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basic</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.88</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(0.04</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.84</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Diluted</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.86</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(0.03</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.83</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></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="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Balance Sheet</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2017</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30,800</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(117</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30,683</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,391</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">112</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,503</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred revenue and customer deposits</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,969</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(549</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,420</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Retained earnings</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">668,267</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">320</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">668,587</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></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:99.609375%;border-collapse:collapse;text-align:left;"><tr><td colspan="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Shareholders' Equity</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2016</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Retained Earnings</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">643,836</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">786</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">644,622</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></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:99.609375%;border-collapse:collapse;text-align:left;"><tr><td colspan="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Shareholders' Equity</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2015</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Retained Earnings</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">566,622</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,664</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">573,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font 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):</font></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" rowspan="1"></td></tr><tr><td style="width:61%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2016</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Americas</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">267,043</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">214,338</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,359</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Europe</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">307,965</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">328,826</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">230,311</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Greater China</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">126,109</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">108,738</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">66,179</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other Asia</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">105,221</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">114,181</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">70,666</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes disaggregated revenue information by revenue type (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:61%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2016</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Standard products and services</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">654,509</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">603,196</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">413,425</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Application-specific customer solutions</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">151,829</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,887</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">116,090</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Costs to Fulfill a Contract</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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 $</font><font style="font-family:Arial;font-size:10pt;">3,514,000</font><font style="font-family:Arial;font-size:10pt;"> and $</font><font style="font-family:Arial;font-size:10pt;">3,230,000</font><font style="font-family:Arial;font-size:10pt;"> as of December 31, 2018 and 2017, respectively. </font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable, Contract Assets, and Contract Liabilities</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">the </font><font style="font-family:Arial;font-size:10pt;">year ended December 31, 2018 and 201</font><font style="font-family:Arial;font-size:10pt;">7</font><font style="font-family:Arial;font-size:10pt;">.  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.</font></div><div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:80%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:18%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Amount</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,078</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">24,985</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Recognition of revenue</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(23,195</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">552</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,420</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">63,231</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Recognition of revenue</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(61,819</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(987</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,845</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font 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.</font></div></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>38
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833101232">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Shareholders&#8217; Equity</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Preferred Stock</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company has </font><font style="font-family:Arial;font-size:10pt;">400,000</font><font style="font-family:Arial;font-size:10pt;"> shares of authorized but unissued </font><font style="font-family:Arial;font-size:10pt;">$.01</font><font style="font-family:Arial;font-size:10pt;"> par value preferred stock.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Common Stock</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">200,000,000</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">300,000,000</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">10,000,000</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In October 2017, the Company&#8217;s Board of Directors declared a </font><font style="font-family:Arial;font-size:10pt;">two</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">$.002</font><font 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.</font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Each outstanding share of common stock entitles the record holder to </font><font style="font-family:Arial;font-size:10pt;">one</font><font 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.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Shareholder Rights Agreement</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On December 4, 2008, the Company adopted a Shareholder Rights Agreement to provide shareholders with the opportunity to benefit from the long-term prospects and value of the Company and to ensure that shareholders receive fair and equal treatment in the event of any proposed takeover of the Company.  The Shareholder Rights Agreement, which was previously filed by the Company with the Securities and Exchange Commission as an exhibit to the Registration Statement on Form&#160;8-A filed on December&#160;5, 2008, could have made it more difficult for a third party to acquire, or could have discouraged a third party from acquiring, the Company or a large block of the Company&#8217;s common stock.   The Company determined to allow the Shareholder Rights Agreement and associated rights to expire in accordance with their terms on December 5, 2018 without renewal.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Repurchases</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In April 2017, the Company's Board of Directors authorized the repurchase of </font><font style="font-family:Arial;font-size:10pt;">$100,000,000</font><font style="font-family:Arial;font-size:10pt;"> of the Company's common stock.  The Company repurchased </font><font style="font-family:Arial;font-size:10pt;">1,744,000</font><font style="font-family:Arial;font-size:10pt;"> shares at a cost of </font><font style="font-family:Arial;font-size:10pt;">$100,000,000</font><font style="font-family:Arial;font-size:10pt;"> under this program, including </font><font style="font-family:Arial;font-size:10pt;">803,000</font><font style="font-family:Arial;font-size:10pt;"> shares at a cost of </font><font style="font-family:Arial;font-size:10pt;">$45,200,000</font><font style="font-family:Arial;font-size:10pt;"> in the first quarter of 2018.  In February 2018, the Company's Board of Directors authorized the repurchase of  </font><font style="font-family:Arial;font-size:10pt;">$150,000,000</font><font style="font-family:Arial;font-size:10pt;"> of the Company's common stock.  The Company repurchased </font><font style="font-family:Arial;font-size:10pt;">3,174,000</font><font style="font-family:Arial;font-size:10pt;"> shares at a cost of </font><font style="font-family:Arial;font-size:10pt;">$150,000,000</font><font style="font-family:Arial;font-size:10pt;"> under this program.  In October 2018, the Company's Board of Directors authorized the repurchase of </font><font style="font-family:Arial;font-size:10pt;">$200,000,000</font><font style="font-family:Arial;font-size:10pt;"> of the Company's common stock.  As of December 31, 2018, the Company repurchased </font><font style="font-family:Arial;font-size:10pt;">203,000</font><font style="font-family:Arial;font-size:10pt;"> shares at a cost of </font><font style="font-family:Arial;font-size:10pt;">$8,622,000</font><font style="font-family:Arial;font-size:10pt;"> under this program, leaving a remaining balance of </font><font style="font-family:Arial;font-size:10pt;">$191,378,000</font><font style="font-family:Arial;font-size:10pt;">.  Total stock repurchases in 2018 amounted to </font><font style="font-family:Arial;font-size:10pt;">$203,822,000</font><font 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 options, stock price, share availability, and cash requirements.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Dividends</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s Board of Directors declared and paid cash dividends of </font><font style="font-family:Arial;font-size:10pt;">$0.0375</font><font style="font-family:Arial;font-size:10pt;"> per share in the first quarter of 2017,  </font><font style="font-family:Arial;font-size:10pt;">$0.0425</font><font style="font-family:Arial;font-size:10pt;"> in the second and third quarters of 2017, and </font><font style="font-family:Arial;font-size:10pt;">$0.0450</font><font style="font-family:Arial;font-size:10pt;"> in the fourth quarter of 2017, as well as in the first, second, and third quarters of 2018.  The dividend was increased to </font><font style="font-family:Arial;font-size:10pt;">$0.0500</font><font style="font-family:Arial;font-size:10pt;"> in the fourth quarter of 2018.  Total dividends amounted to </font><font style="font-family:Arial;font-size:10pt;">$31,865,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$29,037,000</font><font style="font-family:Arial;font-size:10pt;"> in 2018 and 2017, 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.</font></div></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>39
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825138240">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Stock-Based Compensation</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Option Plans</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s share-based payments that result in compensation expense consist of stock option grants and restricted stock awards.  As of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, the Company had </font><font style="font-family:Arial;font-size:10pt;">19,578,752</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">four</font><font style="font-family:Arial;font-size:10pt;"> or </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;"> </font><font style="font-family:Arial;font-size:10pt;">years based upon continuous service and expire </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;"> years from the grant date.  Vesting of restricted stock awards may be based on continuing employment and/or achievement of pre-established performance goals and objectives.  Vesting of performance-based restricted stock awards and time-based restricted stock awards must not be less than </font><font style="font-family:Arial;font-size:10pt;">one</font><font style="font-family:Arial;font-size:10pt;"> year and </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;"> years, respectively; however, awards with time-based vesting may become vested incrementally over such three-year period.</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s stock option activity:</font></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" rowspan="1"></td></tr><tr><td style="width:45%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Exercise</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Price</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Remaining</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Contractual</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Term</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;years)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Aggregate</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Intrinsic Value</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">12,726</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">25.24</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Granted</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,997</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">52.67</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Exercised</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,493</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17.94</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Forfeited or expired</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(441</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">33.59</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2018</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,789</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">31.73</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7.36</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">146,270</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Exercisable as of December 31, 2018</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,556</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">20.94</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5.85</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">82,716</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Options vested or expected to vest as of&#160;<br clear="none"/>&#160;December 31, 2018 (1)</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">12,499</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">30.60</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7.23</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">141,643</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></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;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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:</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="9" rowspan="1"></td></tr><tr><td style="width:56%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Risk-free rate</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2.9</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2.4</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.7</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Expected dividend yield</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">0.35</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.40</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.83</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Expected volatility</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">39</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">41</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">41</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Expected term (in years)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5.4</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5.4</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5.6</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Risk-free rate</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected dividend yield</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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;</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected volatility</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected term</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company stratifies its employee population into </font><font style="font-family:Arial;font-size:10pt;">two</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">8%</font><font style="font-family:Arial;font-size:10pt;"> to all unvested options for senior management and a rate of </font><font style="font-family:Arial;font-size:10pt;">12%</font><font 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 an increase to compensation expense of </font><font style="font-family:Arial;font-size:10pt;">$1,283,000</font><font style="font-family:Arial;font-size:10pt;"> in 2018, a decrease to compensation expense of </font><font style="font-family:Arial;font-size:10pt;">$673,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and an increase to compensation expense of </font><font style="font-family:Arial;font-size:10pt;">$334,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The weighted-average grant-date fair value of stock options granted was </font><font style="font-family:Arial;font-size:10pt;">$20.84</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$15.59</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$6.33</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The total intrinsic value of stock options exercised was </font><font style="font-family:Arial;font-size:10pt;">$52,629,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$136,672,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$55,580,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">. The total fair value of stock options vested was </font><font style="font-family:Arial;font-size:10pt;">$31,106,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$21,519,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$18,114,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, total unrecognized compensation expense related to non-vested stock options was </font><font style="font-family:Arial;font-size:10pt;">$49,229,000</font><font style="font-family:Arial;font-size:10pt;">, which is expected to be recognized over a weighted-average period of </font><font style="font-family:Arial;font-size:10pt;">1.56</font><font style="font-family:Arial;font-size:10pt;"> years.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company's restricted stock activity: </font></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="11" rowspan="1"></td></tr><tr><td style="width:46%;" rowspan="1" colspan="1"></td><td style="width:16%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:16%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Shares                   (in thousands)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Weighted-Average       Grant Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Aggregate Intrinsic Value                  (in thousands)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">20</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17.03</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Granted</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Vested</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(20</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17.03</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">993</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Forfeited or expired</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2018</font></div></td><td 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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The fair values of restricted stock awards granted were determined based upon the market value of the Company's common stock at the time of grant.  The initial cost is then amortized over the period of vesting until the restrictions lapse.  These restricted shares were fully vested in 2018.  Participants are entitled to dividends on restricted stock awards, but only receive those amounts if the shares vest.  The sale or transfer of these shares is restricted during the vesting period.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The total stock-based compensation expense and the related income tax benefit recognized was </font><font style="font-family:Arial;font-size:10pt;">$41,090,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$7,317,000</font><font style="font-family:Arial;font-size:10pt;">, respectively, in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$31,942,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$10,473,000</font><font style="font-family:Arial;font-size:10pt;">, respectively, in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$20,558,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$6,747,000</font><font style="font-family:Arial;font-size:10pt;">, respectively, in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.  No compensation expense was capitalized in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, or </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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):</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="12" rowspan="1"></td></tr><tr><td style="width:53%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,447</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,881</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,052</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Research, development, and engineering</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">14,578</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,022</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,271</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Selling, general, and administrative</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">24,065</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">19,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,235</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">41,090</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">31,942</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">20,558</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>40
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833038208">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Employee Savings Plan</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">For the first ten months of 2018, under the Company&#8217;s Employee Savings Plan, a defined contribution plan, U.S. employees, who had attained age </font><font style="font-family:Arial;font-size:10pt;">21</font><font style="font-family:Arial;font-size:10pt;"> and were not defined as highly compensated, could have contributed up to </font><font style="font-family:Arial;font-size:10pt;">50%</font><font style="font-family:Arial;font-size:10pt;"> of their pay on a pre-tax basis subject to the annual dollar limitations established by the Internal Revenue Service (IRS).  Highly compensated employees as defined by the IRS, could have contributed up to </font><font style="font-family:Arial;font-size:10pt;">25%</font><font style="font-family:Arial;font-size:10pt;"> of their pay on a pre-tax basis.  The Company matched </font><font style="font-family:Arial;font-size:10pt;">50%</font><font style="font-family:Arial;font-size:10pt;"> of the first </font><font style="font-family:Arial;font-size:10pt;">6%</font><font style="font-family:Arial;font-size:10pt;"> of pay an employee contributed.  Company contributions vested </font><font style="font-family:Arial;font-size:10pt;">20%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">40%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">60%</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">100%</font><font style="font-family:Arial;font-size:10pt;"> after two, three, four, and five years of continuous employment with the Company, respectively.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On November 1, 2018, the Company changed the custodian of the Employee Savings Plan which altered  the contribution rate and vesting period.  Commencing on that date, all U.S. employees, whether they are determined to be highly compensated or not, who have attained age </font><font style="font-family:Arial;font-size:10pt;">21</font><font style="font-family:Arial;font-size:10pt;"> may contribute up to </font><font style="font-family:Arial;font-size:10pt;">100</font><font style="font-family:Arial;font-size:10pt;">% of their pay on a pre-tax basis under the Company's Employee Savings Plan.  The Company still matches </font><font style="font-family:Arial;font-size:10pt;">50%</font><font style="font-family:Arial;font-size:10pt;"> of the first </font><font style="font-family:Arial;font-size:10pt;">6%</font><font style="font-family:Arial;font-size:10pt;"> of pay an employee contributes.  Company contributions vest </font><font style="font-family:Arial;font-size:10pt;">25%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">50%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">75%</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">100%</font><font style="font-family:Arial;font-size:10pt;"> after one, two, three, and four years of continuous employment with the Company, respectively.  Company contributions totaled </font><font style="font-family:Arial;font-size:10pt;">$2,540,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$2,030,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$1,712,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font 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.</font></div></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>41
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833041408">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Taxes</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Domestic income from continuing operations before taxes was </font><font style="font-family:Arial;font-size:10pt;">$39,042,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$30,345,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$23,939,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.  Foreign income from continuing operations before taxes was </font><font style="font-family:Arial;font-size:10pt;">$195,532,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$236,119,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$138,138,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.  </font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense on continuing operations consisted of the following (in thousands):</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="12" rowspan="1"></td></tr><tr><td style="width:50%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Current:</font></div></td><td colspan="11" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Federal</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,624</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,152</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,459</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">State</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(879</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,687</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(617</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,307</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,624</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,309</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">16,052</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">88,463</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">21,151</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred:</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Federal</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(1,271</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,569</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(3,031</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">State</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">554</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(639</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,066</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(28</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">359</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,058</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(745</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,289</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(3,023</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">15,307</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">89,752</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,128</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font 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 on continuing operations, or effective tax rate, was as follows:</font><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" rowspan="1"></td></tr><tr><td style="width:62%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense at U.S. federal statutory corporate tax rate</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">21</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">35</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">35</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">State income taxes, net of federal benefit</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign tax rate differential</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(9</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(27</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(17</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Tax credit</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Discrete tax benefit related to employee stock option exercises</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(4</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(14</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(7</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Discrete tax expense (benefit) related to 2017 Tax Act</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(3</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">36</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Discrete tax expense related to write-down of deferred tax assets </font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other discrete tax events</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense on continuing operations</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">34</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;%</font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">The Tax Act</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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</font><font style="font-family:Arial;font-size:10pt;">, the Company remeasured its deferred tax positions as of December 31, 2017 at the new enacted tax rate, and accordingly, recorded tax expense of </font><font style="font-family:Arial;font-size:10pt;">$12,523,000</font><font 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 $</font><font style="font-family:Arial;font-size:10pt;">3,240,000</font><font style="font-family:Arial;font-size:10pt;"> f</font><font style="font-family:Arial;font-size:10pt;">rom</font><font style="font-family:Arial;font-size:10pt;"> the write-down of its deferred tax assets primarily relating to guidance under the Tax Act regarding stock-based compensation.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$101,379,000</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">$11,028,000</font><font style="font-family:Arial;font-size:10pt;">, which resulted in </font><font style="font-family:Arial;font-size:10pt;">a </font><font style="font-family:Arial;font-size:10pt;">revised estimate for the one-time transition tax of </font><font style="font-family:Arial;font-size:10pt;">$90,351,000</font><font style="font-family:Arial;font-size:10pt;"> payable over </font><font style="font-family:Arial;font-size:10pt;">eight</font><font style="font-family:Arial;font-size:10pt;"> years.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$3,843,000</font><font style="font-family:Arial;font-size:10pt;"> 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.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company will continue to gather and analyze information on historical unrepatriated foreign earnings and monitor state laws relating to this income to finalize both the federal and state tax impact.  The Tax Act limits certain deductions and these limitations may impact the value of existing deferred tax assets.  The Company will continue to review the impact of these limitations as regulatory guidance is issued.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Other Discrete Tax Items</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The effective tax rate also included a decrease in tax expense of </font><font style="font-family:Arial;font-size:10pt;">$8,488,000</font><font style="font-family:Arial;font-size:10pt;"> in 2018, </font><font style="font-family:Arial;font-size:10pt;">$38,569,000</font><font style="font-family:Arial;font-size:10pt;"> in 2017, and </font><font style="font-family:Arial;font-size:10pt;">$11,889,000</font><font style="font-family:Arial;font-size:10pt;"> in 2016 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.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2018, tax expense included a provision for state income taxes of </font><font style="font-family:Arial;font-size:10pt;">$620,000</font><font style="font-family:Arial;font-size:10pt;"> 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 sufficient local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested resulting in the additional state income tax provision.  As of December 31, 2018</font><font style="font-family:Arial;font-size:10pt;"> and</font><font style="font-family:Arial;font-size:10pt;"> 2017, </font><font style="font-family:Arial;font-size:10pt;">$446,346,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$498,653,000</font><font 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.</font></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other discrete tax events resulted in a net decrease in tax expense of </font><font style="font-family:Arial;font-size:10pt;">$1,847,000</font><font style="font-family:Arial;font-size:10pt;"> in 2018 and a net decrease in tax expense of </font><font style="font-family:Arial;font-size:10pt;">$2,502,000</font><font style="font-family:Arial;font-size:10pt;"> in 2017, consisting primarily of i) the final true-up of the prior year's tax accrual upon filing the related tax returns and ii) the expiration of the statutes of limitations for certain reserves for income tax uncertainties. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.  The statutory tax rate is 12.5% in Ireland and 25% in China, compared to the U.S. federal statutory corporate tax rate of 21%.  International rights to certain of the Company&#8217;s intellectual property are held by a subsidiary whose legal jurisdiction does not tax this income, resulting in a foreign effective tax rate lower than the above mentioned statutory rates.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Interest and penalties included in income tax expense was </font><font style="font-family:Arial;font-size:10pt;">$91,000</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$71,000</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$92,000</font><font style="font-family:Arial;font-size:10pt;"> in 2018, 2017, and 2016, respectively.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">ASU</font><font style="font-family:Arial;font-size:10pt;"> 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 </font><font style="font-family:Arial;font-size:10pt;">$5,961,000</font><font style="font-family:Arial;font-size:10pt;"> through a cumulative-effect adjustment directly to retained earnings at the beginning of fiscal year 2018.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Tax Reserves</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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):</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" rowspan="1"></td></tr><tr><td style="width:82%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:16%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,719</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits as a result of tax positions taken in prior periods</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(56</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,993</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits relating to settlements with taxing authorities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(116</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(791</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,749</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">69</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,499</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,023</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,294</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s reserve for income taxes, including gross interest and penalties, was </font><font style="font-family:Arial;font-size:10pt;">$8,134,000</font><font style="font-family:Arial;font-size:10pt;"> as of December 31, 2018, which included </font><font style="font-family:Arial;font-size:10pt;">$7,106,000</font><font style="font-family:Arial;font-size:10pt;"> classified as a non-current liability and </font><font style="font-family:Arial;font-size:10pt;">$1,028,000</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">$7,516,000</font><font style="font-family:Arial;font-size:10pt;"> as of December 31, 2017, which included </font><font style="font-family:Arial;font-size:10pt;">$6,488,000</font><font style="font-family:Arial;font-size:10pt;"> classified as a non-current liability and </font><font style="font-family:Arial;font-size:10pt;">$1,028,000</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">$840,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$767,000</font><font style="font-family:Arial;font-size:10pt;"> as of December&#160;31, 2018 and December&#160;31, 2017, 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 </font><font style="font-family:Arial;font-size:10pt;">$1,200,000</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">$1,300,000</font><font style="font-family:Arial;font-size:10pt;"> over the next twelve months.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 2015 through 2018 remain open to examination by the Internal Revenue Service and various state taxing authorities.  The tax years 2014 through 2018 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2011, the Company finalized an Advanced Pricing Agreement (APA) with Japan that covers tax years 2006 through 2011, with a requested extension to 2012.  The Company has concluded negotiations for an APA between Japan and Ireland that covers tax years 2014 through 2018 with retroactive application to 2013. The Company is currently in negotiations to potentially extend this agreement through 2022.  The Company believes it is adequately reserved for these open years.</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Deferred Tax Assets and Liabilities</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred tax assets and liabilities consisted of the following (in thousands):</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" rowspan="1"></td></tr><tr><td style="width:67%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-current deferred tax assets:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,818</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,664</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Federal and state tax credit carryforwards</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,395</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,707</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Bonuses, commissions, and other compensation</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,470</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,704</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventory and revenue related</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,233</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,415</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Depreciation</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,475</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,279</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,425</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,012</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross non-current deferred tax assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">34,816</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,781</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-current deferred tax liabilities:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Nondeductible intangible assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(44</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(87</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross non-current deferred tax liabilities</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(44</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(87</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Valuation allowance</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(6,112</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(5,309</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net non-current deferred tax assets</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">28,660</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27,385</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:18px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-current deferred tax liabilities:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;&#160;Other</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(962</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(312</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net non-current deferred tax liabilities</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(962</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(312</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2018, the Company recorded a valuation allowance of </font><font style="font-family:Arial;font-size:10pt;">$803,000</font><font 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 </font><font style="font-family:Arial;font-size:10pt;">$8,423,000</font><font style="font-family:Arial;font-size:10pt;"> of state research and development tax credit carryforwards, net of federal tax, as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, which will begin to expire in 2019.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash paid for income taxes totaled </font><font style="font-family:Arial;font-size:10pt;">$41,430,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$11,802,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$20,748,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div></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_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>42
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833088784">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Weighted Average Shares</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Weighted-average shares were calculated as follows (in thousands):</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="9" rowspan="1"></td></tr><tr><td style="width:56%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basic weighted-average common shares outstanding</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">172,333</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">173,287</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">170,676</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Effect of dilutive stock options</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,073</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,264</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,468</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Diluted weighted-average common and common-equivalent shares outstanding</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">177,406</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">179,551</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">174,144</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Stock options to purchase </font><font style="font-family:Arial;font-size:10pt;">2,650,164</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">3,363,141</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">4,391,598</font><font style="font-family:Arial;font-size:10pt;"> shares of common stock, on a weighted-average basis, were outstanding in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">2016</font><font 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.</font></div></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>43
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833017264">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Segment and Geographic Information</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company operates in </font><font style="font-family:Arial;font-size:10pt;">one</font><font 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.</font></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes information about geographic areas (in thousands):</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="20" rowspan="1"></td></tr><tr><td style="width:31%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">United&#160;States</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Europe</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Greater China </font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2018</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">231,760</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">307,965</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">126,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">140,504</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-lived assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">67,156</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">23,948</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,482</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,735</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">95,321</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2017</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">180,248</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">328,826</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">108,738</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">148,271</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-lived assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">53,983</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">22,437</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,594</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,525</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">80,539</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2016</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">142,380</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">230,311</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">66,179</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">90,645</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-lived assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">40,404</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">12,981</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">994</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,932</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">56,311</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">15%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">20%</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">17%</font><font style="font-family:Arial;font-size:10pt;"> of total revenue in 2018, 2017, and 2016, respectively. </font><font style="font-family:Arial;font-size:10pt;">Accounts receivable from the same customer accounted for </font><font style="font-family:Arial;font-size:10pt;">30%</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">40%</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">10%</font><font style="font-family:Arial;font-size:10pt;"> of total accounts receivable as of December 31, 2018, 2017, and 2016, respectively.</font></div></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>44
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6669082848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Discontinued Operations<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DiscontinuedOperationsAndDisposalGroupsAbstract', window );"><strong>Discontinued Operations and Disposal Groups [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_DiscontinuedOperationsPolicyTextBlock', window );">Discontinued Operations</a></td>
<td class="text"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Discontinued Operations</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On July 6, 2015, the Company completed the sale of its Surface Inspection Systems Division (SISD) to AMETEK, Inc. (AMETEK).  A binding arbitration was concluded in 2016 with respect to certain product performance claims made by an SISD customer, for which the Company remained responsible under the indemnity provisions of the sale transaction.  In that proceeding, the tribunal ordered the Company to pay the customer approximately </font><font style="font-family:Arial;font-size:10pt;">$326,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing a refund of the product purchase price.  The tribunal also ordered the customer to pay the Company approximately </font><font style="font-family:Arial;font-size:10pt;">$45,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing reimbursement of legal fees.  The net settlement of </font><font style="font-family:Arial;font-size:10pt;">$281,000</font><font style="font-family:Arial;font-size:10pt;"> was recorded in discontinued operations in 2016, along with </font><font style="font-family:Arial;font-size:10pt;">$123,000</font><font style="font-family:Arial;font-size:10pt;"> of legal fees.  The tax benefit related to this expense was </font><font style="font-family:Arial;font-size:10pt;">$149,000</font><font style="font-family:Arial;font-size:10pt;">, resulting in a net loss from discontinued operations of </font><font style="font-family:Arial;font-size:10pt;">$255,000</font><font style="font-family:Arial;font-size:10pt;">.</font></div></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_DiscontinuedOperationsAndDisposalGroupsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DiscontinuedOperationsAndDisposalGroupsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DiscontinuedOperationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 discontinued operations. Includes, but is not limited to, method of interest allocation to a 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 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=d3e1361-107760<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section S99<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=26872618&amp;loc=d3e7436-122677<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 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_DiscontinuedOperationsPolicyTextBlock</td>
</tr>
<tr>
<td style="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>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833017264">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Acquisitions</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company completed a total of </font><font style="font-family:Arial;font-size:10pt;">six</font><font style="font-family:Arial;font-size:10pt;"> business acquisitions in 2017 and 2016.  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.  </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Transaction costs were immaterial and were expensed as incurred.</font><font style="font-family:Arial;font-size:10pt;"> </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">GVi Ventures, Inc.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$5,368,000</font><font style="font-family:Arial;font-size:10pt;"> included cash payment of </font><font style="font-family:Arial;font-size:10pt;">$4,069,000</font><font style="font-family:Arial;font-size:10pt;"> and contingent consideration valued at </font><font style="font-family:Arial;font-size:10pt;">$1,299,000</font><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2017, the Company recorded a </font><font style="font-family:Arial;font-size:10pt;">$282,000</font><font style="font-family:Arial;font-size:10pt;"> expense representing a fair value adjustment in other expense, which increased the liability amount to </font><font style="font-family:Arial;font-size:10pt;">$1,581,000</font><font style="font-family:Arial;font-size:10pt;"> as of December 31, 2017.  In 2018, the Company paid $</font><font style="font-family:Arial;font-size:10pt;">1,000,000</font><font style="font-family:Arial;font-size:10pt;"> and recorded a </font><font style="font-family:Arial;font-size:10pt;">$1,065,000</font><font style="font-family:Arial;font-size:10pt;"> expense representing a fair value adjustment in other expense, which increased the liability amount to $</font><font style="font-family:Arial;font-size:10pt;">1,646,000</font><font style="font-family:Arial;font-size:10pt;"> as of December 31, 2018.  The undiscounted potential outcomes related to future contingent consideration range from </font><font style="font-family:Arial;font-size:10pt;">$0</font><font style="font-family:Arial;font-size:10pt;"> to $</font><font style="font-family:Arial;font-size:10pt;">2,500,000</font><font style="font-family:Arial;font-size:10pt;"> based upon certain revenue levels over the next </font><font style="font-family:Arial;font-size:10pt;">four years</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">423</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">120</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(152</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">910</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,600</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,476</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,368</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The customer relationships are being amort</font><font style="font-family:Arial;font-size:10pt;">ized to selling, general, and administrative e</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">xpenses over</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">eight</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">years, and the completed technologies are being amortized to cost of revenue over</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">five</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">years, both on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$443,000</font><font style="font-family:Arial;font-size:10pt;">. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">ViDi Systems S.A.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">$23,015,000</font><font style="font-family:Arial;font-size:10pt;"> included cash payment of </font><font style="font-family:Arial;font-size:10pt;">$20,019,000</font><font style="font-family:Arial;font-size:10pt;">, with the remaining </font><font style="font-family:Arial;font-size:10pt;">$2,996,000</font><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">146</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">425</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">129</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">40</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred income tax asset</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">620</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(98</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(716</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred income tax liability</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,008</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-compete agreement</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">370</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,774</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,333</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">23,015</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 will be amortized to research, development and engineering expenses over </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;"> years, and the completed technology will be amortized to cost of revenue over </font><font style="font-family:Arial;font-size:10pt;">six</font><font style="font-family:Arial;font-size:10pt;"> years, both on a straight-line basis.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$5,112,000</font><font style="font-family:Arial;font-size:10pt;">.</font><font style="font-family:Arial;font-size:10pt;"> </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Webscan, Inc. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On December 9, 2016, the Company acquired selected assets and assumed selected liabilities of Webscan, Inc., a privately-held U.S.-based ID provider of barcode verifiers.  The total purchase price of </font><font style="font-family:Arial;font-size:10pt;">$3,176,000</font><font style="font-family:Arial;font-size:10pt;"> included </font><font style="font-family:Arial;font-size:10pt;">$3,000,000</font><font style="font-family:Arial;font-size:10pt;"> in cash paid upon closing and </font><font style="font-family:Arial;font-size:10pt;">$176,000</font><font style="font-family:Arial;font-size:10pt;"> in cash paid in January 2017 as a working capital adjustment.  There are no contingent payments.  In addition, the Company entered into special incentive payments tied to employment, none of which are material, that are being recorded as compensation expense. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Under this transaction, in addition to customer relationships and completed technologies, the Company acquired a team of individuals including software engineers that are expected to help the Company accelerate the development of future ID products. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">504</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">296</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">680</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">840</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">925</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(77</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,176</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The customer relationships are being amort</font><font style="font-family:Arial;font-size:10pt;">ized to selling, general, and administrative e</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">xpenses on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">over</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">seven</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">years, and the completed technologies are being amortized to cost of revenue on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis over </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;"> years.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$287,000</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Chiaro Technologies LLC</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On November 30, 2016, the Company acquired selected assets and assumed selected liabilities of Chiaro Technologies LLC, a privately-held U.S.-based 3D vision company.  The total purchase price of </font><font style="font-family:Arial;font-size:10pt;">$4,149,000</font><font style="font-family:Arial;font-size:10pt;"> included cash payment of </font><font style="font-family:Arial;font-size:10pt;">$3,538,000</font><font style="font-family:Arial;font-size:10pt;"> and contingent consideration valued at </font><font style="font-family:Arial;font-size:10pt;">$611,000</font><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2017, the Company recorded a </font><font style="font-family:Arial;font-size:10pt;">$15,000</font><font style="font-family:Arial;font-size:10pt;"> expense representing a fair value adjustment in other expense, which increased the liability amount to </font><font style="font-family:Arial;font-size:10pt;">$626,000</font><font style="font-family:Arial;font-size:10pt;"> as of December 31, 2017.  In 2018, the Company recorded a </font><font style="font-family:Arial;font-size:10pt;">$282,000</font><font style="font-family:Arial;font-size:10pt;"> expense representing a fair value adjustment in other expense, which increased the liability amount to $</font><font style="font-family:Arial;font-size:10pt;">908,000</font><font style="font-family:Arial;font-size:10pt;"> as of December 31, 2018.  The undiscounted potential outcomes related to the contingent consideration range from </font><font style="font-family:Arial;font-size:10pt;">$0</font><font style="font-family:Arial;font-size:10pt;"> to $</font><font style="font-family:Arial;font-size:10pt;">1,250,000</font><font style="font-family:Arial;font-size:10pt;"> based upon certain milestone revenue levels to be met in 2019 and paid in early 2020. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 accelerate the development of future 3D vision products. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,350</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,911</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(115</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,149</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The completed technologies are included in "Intangible assets" on the Consolidated Balance </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet and are being amortized to cost of revenue on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis over </font><font style="font-family:Arial;font-size:10pt;">seven</font><font style="font-family:Arial;font-size:10pt;"> years.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$902,000</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">EnShape GmbH</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On October 27, 2016, the Company acquired all of the outstanding shares of EnShape GmbH, a privately-held 3D sensor provider based in Germany.  The total purchase price of </font><font style="font-family:Arial;font-size:10pt;">$7,901,000</font><font style="font-family:Arial;font-size:10pt;"> included </font><font style="font-family:Arial;font-size:10pt;">$5,395,000</font><font style="font-family:Arial;font-size:10pt;"> in cash paid upon closing, </font><font style="font-family:Arial;font-size:10pt;">$1,362,000</font><font style="font-family:Arial;font-size:10pt;"> of contingent cash payments based upon the completion of certain tasks that was paid in 2017, and </font><font style="font-family:Arial;font-size:10pt;">$1,144,000</font><font style="font-family:Arial;font-size:10pt;"> of deferred cash payments as a holdback for potential indemnification claims that was paid in 2018.  The Company also entered into special incentive payments tied to employment, none of which are material, that are being recorded as compensation expense. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 help the Company accelerate the development of  future 3D vision products. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">167</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">79</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,896</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">44</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">447</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,089</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,732</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(209</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(2,342</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,901</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance </font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The customer relationships are being amort</font><font style="font-family:Arial;font-size:10pt;">ized to selling, general, and administrative e</font><font style="font-family:Arial;font-size:10pt;background-color:#ffffff;">xpenses, and the completed technologies are being amortized to cost of revenue, both on a straigh</font><font style="font-family:Arial;font-size:10pt;">t-line basis over </font><font style="font-family:Arial;font-size:10pt;">seven</font><font style="font-family:Arial;font-size:10pt;"> years.  The portion of the acquired goodwill deductible for tax purposes is </font><font style="font-family:Arial;font-size:10pt;">$328,000</font><font style="font-family:Arial;font-size:10pt;">.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">AQSense, S.L.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On August 30, 2016, the Company acquired selected assets and assumed selected liabilities of AQSense, S.L., a privately-held 3D vision software provider based in Spain.  The total purchase price of </font><font style="font-family:Arial;font-size:10pt;">$2,519,000</font><font style="font-family:Arial;font-size:10pt;"> was paid in cash and there are no contingent payments. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 help the Company accelerate the development of  future 3D vision products. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">168</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">598</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">384</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,383</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(14</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,519</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The completed technologies are included in "Intangible assets" on the Consolidated Balance Sheet and they are being amortized to cost of revenue on a straight-line basis over </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;"> years.  The acquired goodwill is not deductible for tax purposes. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">In 2017, the Company determined that the carrying value of the customer relationships was impaired and reduced this value to zero.  The impairment charge was included in selling, general, and administrative expenses on the Consolidated Statements of Operations.</font></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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>46
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833105360">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Subsequent Events</font></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">On February 14, 2019, the Company's Board of Directors declared a cash dividend of </font><font style="font-family:Arial;font-size:10pt;">$0.050</font><font style="font-family:Arial;font-size:10pt;"> per share.  The dividend is payable </font><font style="font-family:Arial;font-size:10pt;">March 15, 2019</font><font style="font-family:Arial;font-size:10pt;"> to all shareholders of record as of the close of business on </font><font style="font-family:Arial;font-size:10pt;">March 1, 2019</font><font style="font-family:Arial;font-size:10pt;">.</font></div></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>47
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6832989168">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><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" rowspan="1"></td></tr><tr><td style="width:53%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">April 1,                        2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">July 1,                                 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">September 30,                           2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,<br clear="none"/>2018</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">169,567</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">211,264</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">232,221</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">193,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">129,369</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">157,095</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">173,361</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">140,461</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">34,596</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">63,455</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">77,844</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">45,247</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Net income</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">37,217</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">56,196</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">80,436</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">45,418</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Basic net income per share</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.21</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.33</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.47</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.26</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Diluted net income per share</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.21</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.32</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.45</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.26</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></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" rowspan="1"></td></tr><tr><td style="width:53%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">April 2,                        2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">July 2,                                 2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">October 1,                           2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,<br clear="none"/>2017</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">139,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">178,080</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">266,042</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">182,922</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">106,507</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">135,916</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">197,981</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">138,390</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">37,216</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">60,021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">110,849</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">50,775</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Net income (loss)</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">45,471</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">56,495</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">102,493</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(27,747</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Basic net income (loss) per share (1)</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.26</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.33</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.59</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(0.16</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Diluted net income (loss) per share (1) (2)</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.25</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.32</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.57</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(0.16</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td></tr></table></div><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div><div style="line-height:120%;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;"><br clear="none"/></font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;"><br clear="none"/></font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(1) Prior period results have been adjusted to reflect the </font><font style="font-family:Arial;font-size:9pt;">two</font><font style="font-family:Arial;font-size:9pt;">-for-one stock split effected in the form of a stock dividend which occurred in the quarter ended December 31, 2017.</font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;"><br clear="none"/></font></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(2) As a result of the net loss recorded for the quarter ended December 31, 2017, potential common stock equivalents of </font><font style="font-family:Arial;font-size:9pt;">7,145</font><font style="font-family:Arial;font-size:9pt;"> were not included in the calculation of diluted net loss per share for this quarter.</font></div></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>48
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6706396528">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">SCHEDULE II &#8211; VALUATION AND QUALIFYING ACCOUNTS</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="25" rowspan="1"></td></tr><tr><td style="width:28%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:4%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:4%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Additions</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Description</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance&#160;at</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Beginning</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">of Period</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Charged&#160;to</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Costs and</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Expenses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Charged</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">to Other</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Accounts</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Deductions</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance&#160;at</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">End of</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Period</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="23" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(In thousands)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Reserve&#160;for&#160;Uncollectible Accounts Receivable and Sales Returns:</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,568</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">464</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(343</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(a)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(43</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(b)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,646</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">873</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">724</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(116</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(a)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">87</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(b)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,568</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">736</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">216</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(64</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(a)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(15</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(b)&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">873</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred Tax Valuation Allowance:</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,309</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">803</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,112</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,116</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,193</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,309</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,259</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">857</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,116</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></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;" rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:top" rowspan="1" colspan="1"><div style="line-height:120%;font-size:10pt;padding-left:0px;"><font style="font-family:Arial;font-size:10pt;">(a)</font></div></td><td style="vertical-align:top;" rowspan="1" colspan="1"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Specific write-offs</font></div></td></tr></table><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;" rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:top" rowspan="1" colspan="1"><div style="line-height:120%;font-size:10pt;padding-left:0px;"><font style="font-family:Arial;font-size:10pt;">(b)</font></div></td><td style="vertical-align:top;" rowspan="1" colspan="1"><div style="line-height:120%;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">F</font><font style="font-family:Arial;font-size:10pt;">oreign currency exchange rate changes</font></div></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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>49
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842740448">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Nature of Operations</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 tasks, primarily in manufacturing processes, where vision is required.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Use of Estimates in the Preparation of Financial Statements</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Basis of Consolidation</font></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Foreign Currency Translation</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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).</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Fair Value Measurements</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Cash, Cash Equivalents, and Investments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Money market instruments and debt securities  with original maturities of three months or less are classified as cash equivalents and are stated at amortized cost.  Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments, as well as equity securities that the Company intends to sell within one year.  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 </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;"> years.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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).  Equity securities that are held for short periods of time with the intention of selling them in the near term are designated as trading and are reported at fair value, with unrealized gains and losses recorded in current operations.  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 </font><font style="font-family:Arial;font-size:10pt;">5%</font><font 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.  </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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). </font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Inventories</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Property, Plant, and Equipment</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">39</font><font style="font-family:Arial;font-size:10pt;"> years, building improvements&#8217; useful lives are </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;"> years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from </font><font style="font-family:Arial;font-size:10pt;">two</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">ten</font><font style="font-family:Arial;font-size:10pt;"> years.  Leasehold improvements are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases.  Maintenance and repairs are expensed when incurred; additions and improvements are capitalized.  Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Goodwill</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;"></font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Intangible Assets</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">eleven</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">twelve</font><font style="font-family:Arial;font-size:10pt;"> years, of completed technologies from </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">seven</font><font style="font-family:Arial;font-size:10pt;"> years, of customer relationships from </font><font style="font-family:Arial;font-size:10pt;">five</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">eight</font><font style="font-family:Arial;font-size:10pt;"> years, and of non-compete agreements </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;"> years.  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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Warranty Obligations</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">one</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">three</font><font style="font-family:Arial;font-size:10pt;"> years 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Contingencies</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue Recognition</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Contract with the Customer</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Performance Obligations in the Contract</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.   </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Determining the Transaction Price</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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. </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Allocating the Transaction Price to the Performance Obligations</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</font></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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.  </font></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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 </font><font style="font-family:Arial;font-size:10pt;">30</font><font style="font-family:Arial;font-size:10pt;"> to </font><font style="font-family:Arial;font-size:10pt;">90</font><font style="font-family:Arial;font-size:10pt;"> 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.  </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Research and Development</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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. </font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Advertising Costs</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Advertising costs are expensed as incurred and totaled </font><font style="font-family:Arial;font-size:10pt;">$1,662,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$1,679,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$1,674,000</font><font style="font-family:Arial;font-size:10pt;"> in </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock-Based Compensation</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company&#8217;s share-based payments that result in compensation expense consist of stock option grants and restricted stock awards.  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 granting of restricted stock.  When a stock option is exercised or a restricted stock award is granted, 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company recognizes compensation expense related to stock options 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 as if the option were, in substance, multiple awards.  The amount of compensation expense recognized at the end of the vesting period is based upon the number of stock options for which the requisite service has been completed. No compensation expense is recognized for options 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 option.  The Company applies estimated forfeiture rates to its unvested options 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 option, 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 a credit to expense is recorded related to those employees that have not rendered the requisite service.</font></div></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_IncomeTaxPolicyTextBlock', window );">Taxes</a></td>
<td class="text"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Taxes</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Net Income Per Share</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Comprehensive Income</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, as of December 31, </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;"> and December 31, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, consists of foreign currency translation adjustments of </font><font style="font-family:Arial;font-size:10pt;">$37,486,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$33,270,000</font><font style="font-family:Arial;font-size:10pt;">, respectively; net unrealized losses on available-for-sale investments of </font><font style="font-family:Arial;font-size:10pt;">$1,744,000</font><font style="font-family:Arial;font-size:10pt;"> and </font><font style="font-family:Arial;font-size:10pt;">$58,000</font><font style="font-family:Arial;font-size:10pt;">, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of </font><font style="font-family:Arial;font-size:10pt;">$1,271,000</font><font style="font-family:Arial;font-size:10pt;"> in each year. </font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Amounts reclassified from accumulated other comprehensive income to investment income on the Consolidated Statements of Operations were net realized gains of </font><font style="font-family:Arial;font-size:10pt;">$501,000</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">$829,000</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">$191,000</font><font style="font-family:Arial;font-size:10pt;"> for </font><font style="font-family:Arial;font-size:10pt;">2018</font><font style="font-family:Arial;font-size:10pt;">, </font><font style="font-family:Arial;font-size:10pt;">2017</font><font style="font-family:Arial;font-size:10pt;">, and </font><font style="font-family:Arial;font-size:10pt;">2016</font><font style="font-family:Arial;font-size:10pt;">, respectively.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Concentrations of Risk</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;"></font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Derivative Instruments</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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.</font></div></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_BusinessCombinationsPolicy', window );">Business Combinations</a></td>
<td class="text"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Business Combinations</font></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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 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.</font></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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>50
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833063488">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;"> (in thousands):</font><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" rowspan="1"></td></tr><tr><td style="width:50%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Quoted&#160;Prices&#160;in</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Active Markets</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">for Identical</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Assets (Level&#160;1)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Significant&#160;Other</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Observable</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Inputs (Level&#160;2)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unobservable Inputs                       (Level 3)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Assets:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Money market instruments</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,557</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">300,437</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">231,237</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">132,038</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,417</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,337</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Liabilities:</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">106</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Contingent consideration liabilities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,544</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font 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):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,173</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Payment of EnShape contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,401</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Payment of Manatee contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(525</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Contingent consideration resulting from GVi acquisition</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,299</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Manatee contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(325</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">15</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">282</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes </font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">39</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;background-color:#cceeff;">Balance as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,557</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Manatee contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,350</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">282</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,065</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Payment of GVi contingent consideration</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,554</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>51
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825059120">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash, cash equivalents, and investments consisted of the following (in thousands):</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" rowspan="1"></td></tr><tr><td style="width:66%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">104,655</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">97,951</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Money market instruments</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,557</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,631</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">108,212</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">106,582</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">198,477</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">150,371</font></div></td><td style="vertical-align:bottom;border-top:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">137,871</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">47,395</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">78,407</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">59,203</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">8,101</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">21,579</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,805</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">10,608</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Short-term investments</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">427,348</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">297,961</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">162,566</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">296,014</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">53,631</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">71,727</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">32,760</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">23,459</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,316</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,147</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,890</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">845</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,204</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-term investments</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">262,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">423,441</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">797,599</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">827,984</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;"> (in thousands):</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="16" rowspan="1"></td></tr><tr><td style="width:37%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortized</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Cost</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gains</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Losses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Fair Value</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Short-term:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">198,512</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">38</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(73</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">198,477</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">138,219</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(375</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">137,871</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,628</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">15</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(236</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,407</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,135</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(34</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,101</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-term:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">163,847</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">107</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,388</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,566</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">53,693</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">55</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(117</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">53,631</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,722</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">51</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(13</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,760</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,316</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,930</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(9</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">855</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">845</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">691,319</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">323</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(2,255</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">689,387</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;"> (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24" rowspan="1"></td></tr><tr><td style="width:35%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:8%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Position For Less than</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">12 Months</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss<br clear="none"/>Position For Greater than<br clear="none"/>12 Months</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Losses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br clear="none"/>Losses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br clear="none"/>Losses</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">145,596</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,268</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">99,886</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(495</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">245,482</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,763</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">114,836</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(73</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,850</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(13</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">128,686</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(86</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">47,762</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(91</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">44,585</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(262</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">92,347</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(353</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(4</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,609</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(30</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,101</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(34</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency Bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,920</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(9</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,920</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(9</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,302</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">845</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,147</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">318,908</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(1,445</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">163,775</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(810</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">482,683</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(2,255</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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, </font><font style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</font><font style="font-family:Arial;font-size:10pt;"> (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="28" rowspan="1"></td></tr><tr><td style="width:25%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:7%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:7%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:7%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:7%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">&lt;1&#160;Year</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">1-2&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2-3&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">3-4&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">4-5&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">5-7&#160;Years</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Corporate bonds</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">137,871</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">81,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">56,459</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">20,060</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,126</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">300,437</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Treasury bills</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">198,477</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,760</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">231,237</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Asset-backed securities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,407</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27,665</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,715</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,004</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,416</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,831</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">132,038</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Sovereign bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,101</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,316</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,417</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Agency bonds</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,921</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Municipal bonds</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,492</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">845</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,337</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">427,348</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">149,507</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">64,174</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">36,985</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,542</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,831</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">689,387</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>52
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6832910496">
<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, 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>
</tr>
<tr class="ro">
<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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventories consisted of the following (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8" rowspan="1"></td></tr><tr><td style="width:71%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Raw materials</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">42,738</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">33,927</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Work-in-process</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,435</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,114</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Finished goods</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">37,109</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">31,882</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">83,282</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">67,923</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>53
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6821926384">
<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, 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>
</tr>
<tr class="ro">
<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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment consisted of the following (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8" rowspan="1"></td></tr><tr><td style="width:71%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Land</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,951</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,951</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Buildings</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">24,533</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">24,589</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Building improvements</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">45,067</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">33,189</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Leasehold improvements</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,095</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,513</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Computer hardware and software</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">66,542</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">61,835</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Manufacturing test equipment</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">27,378</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">21,312</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Furniture and fixtures</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,904</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,363</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">183,470</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">157,752</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Less: accumulated depreciation</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(92,074</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(79,704</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">91,396</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,048</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>54
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825018368">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The changes in the carrying value of goodwill were as follows (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5" rowspan="1"></td></tr><tr><td style="width:84%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">95,280</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Acquisition of ViDi Systems, S.A. </font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,333</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Acquisition of GVi Ventures, Inc.</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,476</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment to EnShape goodwill</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,881</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">113,208</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">113,208</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>55
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833104672">
<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, 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_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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Amortized intangible assets consisted of the following (in thousands):</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="12" rowspan="1"></td></tr><tr><td style="width:53%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Distribution networks</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">38,060</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">38,060</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,687</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,619</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,068</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">8,607</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,716</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,891</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-compete agreements</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">370</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">216</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">154</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">60,724</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">50,611</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,113</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</font></div><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Distribution networks</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">38,060</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">38,060</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,687</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,181</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,506</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,607</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,202</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,405</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-compete agreements</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">370</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">92</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">278</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">60,724</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">47,535</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,189</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5" rowspan="1"></td></tr><tr><td style="width:82%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,701</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,185</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2022</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,691</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2023</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">989</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Thereafter</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">530</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,113</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>56
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6834732816">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses consisted of the following (in thousands):</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" rowspan="1"></td></tr><tr><td style="width:65%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Salaries, commissions, and payroll taxes</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">11,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,944</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Company bonuses</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,134</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,721</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Vacation</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,507</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,479</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign retirement obligations</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,816</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,260</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Warranty obligations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,743</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,701</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Acquisition deferred and contingent liabilities</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">431</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,022</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">23,550</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">24,122</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">60,220</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">68,249</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The changes in the warranty obligation were as follows (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4" rowspan="1"></td></tr><tr><td style="width:82%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:16%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,335</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,843</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(3,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">632</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,701</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,184</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(4,024</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(118</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,743</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>57
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6833104672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_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_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock', window );">Future Minimum Rental Payments Under Lease Agreements</a></td>
<td class="text"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Future minimum rental payments under these agreements are as follows (in thousands):</font></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.41520467836257%;border-collapse:collapse;text-align:left;"><tr><td colspan="5" rowspan="1"></td></tr><tr><td style="width:84%;" rowspan="1" colspan="1"></td><td style="width:3%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,086</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,227</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2022</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,918</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2023</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,209</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Thereafter</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,198</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">22,747</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock', window );">Future Minimum Rental Receipts Under Non - Cancelable Lease Agreements</a></td>
<td class="text"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Rental income and related expenses are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations.  Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):</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:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5" rowspan="1"></td></tr><tr><td style="width:84%;" rowspan="1" colspan="1"></td><td style="width:3%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2019</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2022</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">307</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,228</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Schedule of future minimum rental receipts for operating leases.</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_ScheduleOfFutureMinimumRentalReceiptsForOperatingLeasesTableTableTextBlock</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_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_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 future minimum payments required in the aggregate and for each of the five succeeding fiscal years for operating leases having initial or remaining noncancelable lease terms in excess of one year and the total minimum rentals to be received in the future under noncancelable subleases 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 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock</td>
</tr>
<tr>
<td style="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>58
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6701309424">
<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, 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>
</tr>
<tr class="ro">
<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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The Company had the following outstanding forward contracts (in thousands): </font></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" rowspan="1"></td></tr><tr><td style="width:50%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2017</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Currency</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:10px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:10px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="12" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Euro</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">23,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">26,330</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Japanese Yen</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">380,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,459</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">455,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,049</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">British Pound</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,500</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,204</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,650</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,232</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Korean Won</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,125,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,808</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,825,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,708</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Hungarian Forint</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">750,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,685</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">545,000</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,110</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Taiwanese Dollar</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">55,000</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,807</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">37,725</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,278</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Canadian Dollar</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">990</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">726</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Singapore Dollar</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">700</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">514</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Swiss Franc</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,365</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,401</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Asset Derivatives</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Liability Derivatives</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" colspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" colspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</font></div><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">December 31, 2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">December 31, 2017</font></div></td></tr><tr><td colspan="20" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">16</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">106</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font 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):</font><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" rowspan="1"></td></tr><tr><td style="width:18%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:19%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Asset Derivatives</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Liability Derivatives</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2017</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of recognized assets</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">16</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of recognized liabilities</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">106</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts offset</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts offset</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net amount of assets presented</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">16</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net amount of liabilities presented</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">106</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><font 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):</font></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" rowspan="1"></td></tr><tr><td style="width:22%;" rowspan="1" colspan="1"></td><td style="width:24%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></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;" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Location in Financial Statements</font></div></td><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December 31,</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</font></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Designated as Hedging Instruments:</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gains (losses) recorded in shareholders' equity (effective portion)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accumulated other comprehensive income (loss), net of tax</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">37</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(438</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">41</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(398</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gains (losses) recognized in current operations</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign currency gain (loss)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(285</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">270</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(515</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the changes in accumulated other comprehensive income (loss), net of tax, related to derivative instruments (in thousands):</font><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" rowspan="1"></td></tr><tr><td style="width:79%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:19%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">37</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net unrealized gain (loss) on cash flow hedges</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Reclassification of net realized (gain) loss on cash flow hedges into current operations</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(41</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>59
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825080928">
<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, 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>
</tr>
<tr class="ro">
<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"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The adoption of the standard impacted our previously-reported results as follows (in thousands): </font></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="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Operations</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;Year Ended December 31, 2017</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">747,950</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,133</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">168,698</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,591</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">187,289</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">579,252</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(458</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">578,794</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">259,319</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(458</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">258,861</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income before income tax expense</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">266,922</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(458</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">266,464</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">89,744</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">89,752</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">177,178</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(466</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">176,712</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="4" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income per weighted-average common and common-equivalent share:</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basic</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.02</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.02</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Diluted</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.99</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(0.01</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.98</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></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="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Operations</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br clear="none"/></font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31, 2016</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">520,753</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8,762</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">115,590</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">15,480</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">131,070</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">405,163</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6,718</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">398,445</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">160,784</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6,718</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">154,066</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income before income tax expense</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">168,795</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6,718</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,077</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,968</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(840</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,128</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">149,572</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(5,878</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">143,694</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td colspan="4" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net income per weighted-average common and common-equivalent share:</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basic</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.88</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(0.04</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.84</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Diluted</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.86</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(0.03</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.83</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></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="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Balance Sheet</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2017</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30,800</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(117</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">30,683</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,391</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">112</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,503</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred revenue and customer deposits</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,969</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(549</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,420</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Retained earnings</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">668,267</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">320</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">668,587</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></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:99.609375%;border-collapse:collapse;text-align:left;"><tr><td colspan="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Shareholders' Equity</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2016</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Retained Earnings</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">643,836</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">786</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">644,622</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></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:99.609375%;border-collapse:collapse;text-align:left;"><tr><td colspan="12" rowspan="1"></td></tr><tr><td style="width:58%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Shareholders' Equity</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2015</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As previously reported</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Adjustment</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">As restated</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Retained Earnings</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">566,622</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,664</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">573,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue</a></td>
<td class="text"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font 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):</font></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" rowspan="1"></td></tr><tr><td style="width:61%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2016</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Americas</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">267,043</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">214,338</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,359</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Europe</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">307,965</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">328,826</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">230,311</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Greater China</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">126,109</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">108,738</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">66,179</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other Asia</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">105,221</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">114,181</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">70,666</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes disaggregated revenue information by revenue type (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:61%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:10%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2016</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Standard products and services</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">654,509</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">603,196</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">413,425</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Application-specific customer solutions</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">151,829</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">162,887</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">116,090</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:80%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:18%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Amount</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,078</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">24,985</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Recognition of revenue</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(23,195</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">552</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">9,420</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">63,231</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Recognition of revenue</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(61,819</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(987</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">9,845</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>60
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824890496">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s stock option activity:</font></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" rowspan="1"></td></tr><tr><td style="width:45%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Exercise</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Price</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Remaining</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Contractual</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Term</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;years)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Aggregate</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Intrinsic Value</font></div><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">12,726</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">25.24</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Granted</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,997</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">52.67</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Exercised</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,493</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17.94</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Forfeited or expired</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(441</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">33.59</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2018</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,789</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">31.73</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7.36</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">146,270</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Exercisable as of December 31, 2018</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,556</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">20.94</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5.85</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">82,716</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Options vested or expected to vest as of&#160;<br clear="none"/>&#160;December 31, 2018 (1)</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">12,499</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">30.60</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7.23</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">141,643</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></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;"><font 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.</font></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font 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:</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="9" rowspan="1"></td></tr><tr><td style="width:56%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Risk-free rate</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2.9</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2.4</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1.7</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Expected dividend yield</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">0.35</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.40</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">0.83</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Expected volatility</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">39</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">41</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">41</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Expected term (in years)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5.4</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5.4</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5.6</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes the Company's restricted stock activity: </font></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="11" rowspan="1"></td></tr><tr><td style="width:46%;" rowspan="1" colspan="1"></td><td style="width:16%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:15%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:16%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Shares                   (in thousands)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Weighted-Average       Grant Fair Value</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">Aggregate Intrinsic Value                  (in thousands)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2017</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">20</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17.03</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Granted</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Vested</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(20</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">17.03</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">993</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Forfeited or expired</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2018</font></div></td><td 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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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):</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="12" rowspan="1"></td></tr><tr><td style="width:53%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cost of revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,447</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,881</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,052</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Research, development, and engineering</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">14,578</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,022</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,271</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Selling, general, and administrative</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">24,065</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">19,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">13,235</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">41,090</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">31,942</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">20,558</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>61
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825080928">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense on continuing operations consisted of the following (in thousands):</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="12" rowspan="1"></td></tr><tr><td style="width:50%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Current:</font></div></td><td colspan="11" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Federal</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">10,624</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">78,152</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">14,459</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">State</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(879</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,687</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(617</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">6,307</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,624</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">7,309</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">16,052</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">88,463</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">21,151</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred:</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Federal</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(1,271</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,569</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(3,031</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">State</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">554</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(639</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,066</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(28</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">359</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,058</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(745</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,289</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(3,023</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">15,307</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">89,752</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,128</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font 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 on continuing operations, or effective tax rate, was as follows:</font><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" rowspan="1"></td></tr><tr><td style="width:62%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense at U.S. federal statutory corporate tax rate</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">21</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">35</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><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;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">35</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">State income taxes, net of federal benefit</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Foreign tax rate differential</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(9</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(27</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(17</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Tax credit</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Discrete tax benefit related to employee stock option exercises</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(4</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(14</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(7</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Discrete tax expense (benefit) related to 2017 Tax Act</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(3</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">36</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Discrete tax expense related to write-down of deferred tax assets </font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other discrete tax events</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#8212;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Income tax expense on continuing operations</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">34</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;%</font></div></td></tr></table></div></div></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_SummaryOfIncomeTaxContingenciesTextBlock', window );">Changes in the Reserve for Income Taxes, Excluding Interest and Penalties</a></td>
<td class="text"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><font 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):</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" rowspan="1"></td></tr><tr><td style="width:82%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:16%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2016</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,719</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits as a result of tax positions taken in prior periods</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(56</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,993</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits relating to settlements with taxing authorities</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(116</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(791</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2017</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,749</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">69</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,499</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font 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</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,023</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2018</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,294</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Constituents of Deferred Tax Assets</a></td>
<td class="text"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred tax assets and liabilities consisted of the following (in thousands):</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" rowspan="1"></td></tr><tr><td style="width:67%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:14%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-current deferred tax assets:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">13,818</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">11,664</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Federal and state tax credit carryforwards</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,395</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,707</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Bonuses, commissions, and other compensation</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,470</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5,704</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventory and revenue related</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,233</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,415</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Depreciation</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,475</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,279</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Other</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,425</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,012</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross non-current deferred tax assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">34,816</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">32,781</font></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-current deferred tax liabilities:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Nondeductible intangible assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(44</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(87</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Gross non-current deferred tax liabilities</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(44</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(87</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Valuation allowance</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(6,112</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(5,309</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net non-current deferred tax assets</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">28,660</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">27,385</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:18px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-current deferred tax liabilities:</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;&#160;Other</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(962</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(312</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Net non-current deferred tax liabilities</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">(962</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">)</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(312</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr></table></div></div></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_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>62
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6832911296">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Weighted-average shares were calculated as follows (in thousands):</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="9" rowspan="1"></td></tr><tr><td style="width:56%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:13%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">2016</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Basic weighted-average common shares outstanding</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">172,333</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">173,287</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">170,676</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Effect of dilutive stock options</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,073</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,264</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3,468</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Diluted weighted-average common and common-equivalent shares outstanding</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">177,406</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">179,551</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">174,144</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>63
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6821926384">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The following table summarizes information about geographic areas (in thousands):</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="20" rowspan="1"></td></tr><tr><td style="width:31%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:11%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">United&#160;States</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Europe</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Greater China </font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2018</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">231,760</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">307,965</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">126,109</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">140,504</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">806,338</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-lived assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">67,156</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">23,948</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">1,482</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,735</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">95,321</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2017</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">180,248</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">328,826</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">108,738</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">148,271</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">766,083</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-lived assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">53,983</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">22,437</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,594</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,525</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">80,539</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2016</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><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;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">142,380</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">230,311</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">66,179</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">90,645</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">529,515</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Long-lived assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">40,404</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">12,981</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">994</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,932</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">56,311</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>64
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6832947984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Discontinued Operations - (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DiscontinuedOperationsAndDisposalGroupsAbstract', window );"><strong>Discontinued Operations and Disposal Groups [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_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock', window );">Schedule of Discontinued Operations</a></td>
<td class="text"><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">A binding arbitration was concluded in 2016 with respect to certain product performance claims made by an SISD customer, for which the Company remained responsible under the indemnity provisions of the sale transaction.  In that proceeding, the tribunal ordered the Company to pay the customer approximately </font><font style="font-family:Arial;font-size:10pt;">$326,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing a refund of the product purchase price.  The tribunal also ordered the customer to pay the Company approximately </font><font style="font-family:Arial;font-size:10pt;">$45,000</font><font style="font-family:Arial;font-size:10pt;">, primarily representing reimbursement of legal fees.  The net settlement of </font><font style="font-family:Arial;font-size:10pt;">$281,000</font><font style="font-family:Arial;font-size:10pt;"> was recorded in discontinued operations in 2016, along with </font><font style="font-family:Arial;font-size:10pt;">$123,000</font><font style="font-family:Arial;font-size:10pt;"> of legal fees.  The tax benefit related to this expense was </font><font style="font-family:Arial;font-size:10pt;">$149,000</font><font style="font-family:Arial;font-size:10pt;">, resulting in a net loss from discontinued operations of </font><font style="font-family:Arial;font-size:10pt;">$255,000</font><font style="font-family:Arial;font-size:10pt;">. </font></div></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_DiscontinuedOperationsAndDisposalGroupsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DiscontinuedOperationsAndDisposalGroupsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 related to a disposal group. Includes, but is not limited to, a discontinued operation, disposal classified as held-for-sale or disposed of by means other than sale or disposal of an individually significant component.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div 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 3A<br> -URI http://asc.fasb.org/extlink&amp;oid=109226691&amp;loc=SL51724579-110230<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=d3e1474-107760<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5D<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721677-107760<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=SL51721533-107759<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3A<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721659-107760<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4B<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721665-107760<br><br>Reference 7: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109226691&amp;loc=d3e2941-110230<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5C<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721675-107760<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=d3e1361-107760<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5A<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721671-107760<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5B<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721673-107760<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4A<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721663-107760<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDisposalGroupsIncludingDiscontinuedOperationsIncomeStatementBalanceSheetAndAdditionalDisclosuresTextBlock</td>
</tr>
<tr>
<td style="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>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6828592576">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">423</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">120</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(152</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(10</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">910</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,600</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,476</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">5,368</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></div><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">167</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">79</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,896</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">44</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">447</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,089</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">6,732</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(6</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(209</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued income taxes</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(2,342</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">7,901</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></div><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">504</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Inventories</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">296</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">8</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">680</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">840</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">925</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(77</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">3,176</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></div><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">168</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Customer relationships</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">598</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">384</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,383</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(14</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">2,519</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></div><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1,350</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2,911</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(115</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">4,149</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></div><div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</font></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" rowspan="1"></td></tr><tr><td style="width:86%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:12%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Cash</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">146</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts receivable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">425</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">129</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">40</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred income tax asset</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">620</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accounts payable</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(98</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Accrued expenses</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(716</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Deferred income tax liability</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(1,008</font></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Non-compete agreement</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">370</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Completed technologies</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4,774</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Goodwill</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18,333</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Purchase price</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">23,015</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr></table></div></div></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>XML
<SEQUENCE>66
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825099808">
<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, 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_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="font-family:Times New Roman;font-size:10pt;"><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" rowspan="1"></td></tr><tr><td style="width:53%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">April 1,                        2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">July 1,                                 2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">September 30,                           2018</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,<br clear="none"/>2018</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">169,567</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">211,264</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">232,221</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">193,286</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">129,369</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">157,095</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">173,361</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">140,461</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">34,596</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">63,455</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">77,844</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">45,247</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Net income</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">37,217</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">56,196</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">80,436</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">45,418</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Basic net income per share</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.21</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.33</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.47</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.26</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Diluted net income per share</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.21</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.32</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.45</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.26</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></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" rowspan="1"></td></tr><tr><td style="width:53%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td><td style="width:9%;" rowspan="1" colspan="1"></td><td style="width:1%;" rowspan="1" colspan="1"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">April 2,                        2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">July 2,                                 2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">October 1,                           2017</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1"><div style="text-align:center;font-size:7pt;"><font style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,<br clear="none"/>2017</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:8pt;"><font style="font-family:inherit;font-size:8pt;">&#160;</font></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:center;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Revenue</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">139,039</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">178,080</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">266,042</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><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;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">182,922</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Gross margin</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">106,507</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">135,916</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">197,981</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">138,390</font></div></td><td style="vertical-align:bottom;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Operating income</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">37,216</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">60,021</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">110,849</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">50,775</font></div></td><td style="vertical-align:bottom;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Net income (loss)</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">45,471</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">56,495</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">102,493</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></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;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(27,747</font></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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;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;" rowspan="1" colspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1"><div style="overflow:hidden;height:13px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</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;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Basic net income (loss) per share (1)</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.26</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.33</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.59</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(0.16</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Diluted net income (loss) per share (1) (2)</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.25</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.32</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">0.57</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;" rowspan="1" colspan="1"><div style="text-align:left;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br clear="none"/></font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;" rowspan="1" colspan="1"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">$</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:right;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">(0.16</font></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;" rowspan="1" colspan="1"><div style="text-align:left;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">)</font></div></td></tr></table></div></div></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>67
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827764080">
<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, 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_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>68
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6834818960">
<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, 2018</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">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=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 );">Noncompete Agreements [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>
</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827008688">
<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, 2018</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>70
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825061040">
<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, 2018</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>71
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842345568">
<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, 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_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,662,000<span></span>
</td>
<td class="nump">$ 1,679,000<span></span>
</td>
<td class="nump">$ 1,674,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>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842777824">
<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, 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_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">$ 37,486,000<span></span>
</td>
<td class="nump">$ 33,270,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">1,744,000<span></span>
</td>
<td class="nump">58,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">501,000<span></span>
</td>
<td class="nump">829,000<span></span>
</td>
<td class="nump">$ 191,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">$ 501,000<span></span>
</td>
<td class="nump">$ 829,000<span></span>
</td>
<td class="nump">$ 191,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>73
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824983616">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>New Pronouncements (Details) - Accounting Standards Update 2016-02 [Member] - Scenario, Plan [Member]<br></strong></div></th>
<th class="th">
<div>Jan. 01, 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_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems', window );"><strong>New Accounting Pronouncements or Change in Accounting Principle [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_OperatingLeaseRightOfUseAsset', window );">Operating lease, asset</a></td>
<td class="nump">$ 20,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_OperatingLeaseLiability', window );">Operating lease, liability</a></td>
<td class="nump">$ 20,000,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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementScenarioAxis=us-gaap_ScenarioPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_StatementScenarioAxis=us-gaap_ScenarioPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6843176048">
<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) - USD ($)<br></strong></div></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>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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">$ 469,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_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Measurements, Recurring [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_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="re">
<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 Losses, Investments, Portion Recognized in Earnings, Net</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 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 Losses Investments Portion Recognized In Earnings Net, 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) [Member] | Fair Value, Measurements, Recurring [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_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="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_MoneyMarketInstrumentsFairValueDisclosure', window );">Money market instruments</a></td>
<td class="nump">3,557,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">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">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_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="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_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="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_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 " 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) [Member] | Fair Value, Measurements, Recurring [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_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_CorporateBondsFairValueDisclosure', window );">Corporate bonds</a></td>
<td class="nump">300,437,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_TreasuryBillsFairValueDisclosure', window );">Treasury bills</a></td>
<td class="nump">231,237,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">132,038,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">14,417,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_AgencyBondsFairValueDisclosure', window );">Agency bonds</a></td>
<td class="nump">5,921,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_MunicipalBondsFairValueDisclosure', window );">Municipal bonds</a></td>
<td class="nump">5,337,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_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">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_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="re">
<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">106,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_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 );">Fair Value, Inputs, Level 3 [Member] | Fair Value, Measurements, Recurring [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_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="re">
<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">$ 2,544,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_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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_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>75
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6843139104">
<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="2">12 Months Ended</th>
</tr>
<tr>
<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_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>
</tr>
<tr class="ro">
<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">$ 3,557<span></span>
</td>
<td class="nump">$ 4,173<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases', window );">Contingent consideration resulting from acquisitions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease', window );">Payment of GVi contingent consideration</a></td>
<td class="num">(1,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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Ending balance</a></td>
<td class="nump">2,554<span></span>
</td>
<td class="nump">3,557<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_EnShapeGmbHMember', window );">EnShape GmbH [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_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>
</tr>
<tr class="ro">
<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,401)<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. [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_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>
</tr>
<tr class="re">
<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,350)<span></span>
</td>
<td class="num">(325)<span></span>
</td>
</tr>
<tr class="ro">
<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">(525)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_ChiaroTechnologiesLLCMember', window );">Chiaro Technologies LLC [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_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>
</tr>
<tr class="re">
<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">282<span></span>
</td>
<td class="nump">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_BusinessAcquisitionAxis=cgnx_GViVenturesInc.Member', window );">GVi Ventures, Inc. [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_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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases', window );">Contingent consideration resulting from acquisitions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,299<span></span>
</td>
</tr>
<tr class="re">
<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">$ 1,065<span></span>
</td>
<td class="nump">$ 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_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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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) 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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 purchases of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div 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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_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_EnShapeGmbHMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_EnShapeGmbHMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<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>
<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>76
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6828817696">
<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, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Dec. 31, 2016</div></th>
<th class="th"><div>Dec. 31, 2015</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">$ 104,655<span></span>
</td>
<td class="nump">$ 97,951<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">3,557<span></span>
</td>
<td class="nump">8,631<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">108,212<span></span>
</td>
<td class="nump">106,582<span></span>
</td>
<td class="nump">$ 79,641<span></span>
</td>
<td class="nump">$ 51,975<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Short-term investments</a></td>
<td class="nump">427,348<span></span>
</td>
<td class="nump">297,961<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Long-term investments</a></td>
<td class="nump">262,039<span></span>
</td>
<td class="nump">423,441<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">797,599<span></span>
</td>
<td class="nump">827,984<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 );">Short-term investments</a></td>
<td class="nump">198,477<span></span>
</td>
<td class="nump">150,371<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">32,760<span></span>
</td>
<td class="nump">23,459<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 );">Short-term investments</a></td>
<td class="nump">137,871<span></span>
</td>
<td class="nump">47,395<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">162,566<span></span>
</td>
<td class="nump">296,014<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 );">Short-term investments</a></td>
<td class="nump">78,407<span></span>
</td>
<td class="nump">59,203<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">53,631<span></span>
</td>
<td class="nump">71,727<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 );">Short-term investments</a></td>
<td class="nump">8,101<span></span>
</td>
<td class="nump">21,579<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">6,316<span></span>
</td>
<td class="nump">13,147<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 );">Short-term investments</a></td>
<td class="nump">4,492<span></span>
</td>
<td class="nump">8,805<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">845<span></span>
</td>
<td class="nump">4,204<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="re">
<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 );">Short-term investments</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">10,608<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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,921<span></span>
</td>
<td class="nump">$ 14,890<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_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>77
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824890496">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - 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, 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_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">$ 67,502,000<span></span>
</td>
<td class="nump">$ 66,777,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_AvailableForSaleSecuritiesGrossRealizedGains', window );">Gross realized gains on sale of debt securities</a></td>
<td class="nump">669,000<span></span>
</td>
<td class="nump">929,000<span></span>
</td>
<td class="nump">$ 292,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_AvailableForSaleSecuritiesGrossRealizedLosses', window );">Gross realized losses on sale of debt securities</a></td>
<td class="nump">$ 168,000<span></span>
</td>
<td class="nump">$ 100,000<span></span>
</td>
<td class="nump">$ 101,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_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>78
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6843863440">
<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, 2018 </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">$ 691,319<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">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_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(2,255)<span></span>
</td>
</tr>
<tr class="re">
<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">689,387<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">231,237<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">198,512<span></span>
</td>
</tr>
<tr class="ro">
<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">38<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(73)<span></span>
</td>
</tr>
<tr class="ro">
<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">198,477<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">32,722<span></span>
</td>
</tr>
<tr class="ro">
<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">51<span></span>
</td>
</tr>
<tr class="re">
<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">(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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">32,760<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="ro">
<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">300,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_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="re">
<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">138,219<span></span>
</td>
</tr>
<tr class="re">
<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">27<span></span>
</td>
</tr>
<tr class="ro">
<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">(375)<span></span>
</td>
</tr>
<tr class="re">
<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">137,871<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="re">
<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">163,847<span></span>
</td>
</tr>
<tr class="re">
<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">107<span></span>
</td>
</tr>
<tr class="ro">
<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,388)<span></span>
</td>
</tr>
<tr class="re">
<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">162,566<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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">132,038<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="ro">
<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">78,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">15<span></span>
</td>
</tr>
<tr class="re">
<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">(236)<span></span>
</td>
</tr>
<tr class="ro">
<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">78,407<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="ro">
<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">53,693<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">55<span></span>
</td>
</tr>
<tr class="re">
<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">(117)<span></span>
</td>
</tr>
<tr class="ro">
<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">53,631<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">14,417<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">8,135<span></span>
</td>
</tr>
<tr class="re">
<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">(34)<span></span>
</td>
</tr>
<tr class="re">
<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">8,101<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">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">30<span></span>
</td>
</tr>
<tr class="ro">
<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,316<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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">5,921<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="ro">
<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">5,930<span></span>
</td>
</tr>
<tr class="ro">
<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="re">
<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">(9)<span></span>
</td>
</tr>
<tr class="ro">
<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,921<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="ro">
<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,337<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="re">
<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">4,492<span></span>
</td>
</tr>
<tr class="re">
<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="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">4,492<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="re">
<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">855<span></span>
</td>
</tr>
<tr class="re">
<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">(10)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">$ 845<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_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=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>79
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842367552">
<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, 2018 </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">$ 318,908<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(1,445)<span></span>
</td>
</tr>
<tr class="ro">
<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">163,775<span></span>
</td>
</tr>
<tr class="re">
<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">(810)<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">482,683<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">(2,255)<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">145,596<span></span>
</td>
</tr>
<tr class="re">
<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">(1,268)<span></span>
</td>
</tr>
<tr class="ro">
<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">99,886<span></span>
</td>
</tr>
<tr class="re">
<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">(495)<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">245,482<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,763)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">114,836<span></span>
</td>
</tr>
<tr class="re">
<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">(73)<span></span>
</td>
</tr>
<tr class="ro">
<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">13,850<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(13)<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">128,686<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">(86)<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">47,762<span></span>
</td>
</tr>
<tr class="re">
<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">(91)<span></span>
</td>
</tr>
<tr class="ro">
<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">44,585<span></span>
</td>
</tr>
<tr class="re">
<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">(262)<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">92,347<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">(353)<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">3,492<span></span>
</td>
</tr>
<tr class="re">
<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">4,609<span></span>
</td>
</tr>
<tr class="re">
<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">(30)<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">8,101<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">(34)<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">5,920<span></span>
</td>
</tr>
<tr class="re">
<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">(9)<span></span>
</td>
</tr>
<tr class="ro">
<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">5,920<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">(9)<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">1,302<span></span>
</td>
</tr>
<tr class="re">
<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">845<span></span>
</td>
</tr>
<tr class="re">
<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">(10)<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,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_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">$ (10)<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_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_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=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>80
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827637968">
<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></strong></div></th>
<th class="th">
<div>Dec. 31, 2018 </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">$ 427,348,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_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">149,507,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">64,174,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_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">36,985,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">7,542,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_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">5-7 Years</a></td>
<td class="nump">3,831,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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">689,387,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="ro">
<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_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">137,871,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">81,921,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_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">56,459,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">20,060,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_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">4,126,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">5-7 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">300,437,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_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">198,477,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_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">32,760,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">5-7 Years</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">231,237,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_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_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">78,407,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">27,665,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_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">7,715,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">11,004,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_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">3,416,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">5-7 Years</a></td>
<td class="nump">3,831,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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">132,038,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_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">8,101,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_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">6,316,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">5-7 Years</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">14,417,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_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_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</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_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">5,921,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_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 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_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">5-7 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,921,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_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,492,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_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">845,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">5-7 Years</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">$ 5,337,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_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 Five Years Before Seven Years 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_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_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_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=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>81
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825062288">
<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, 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_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">$ 42,738<span></span>
</td>
<td class="nump">$ 33,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_InventoryWorkInProcessNetOfReserves', window );">Work-in-process</a></td>
<td class="nump">3,435<span></span>
</td>
<td class="nump">2,114<span></span>
</td>
</tr>
<tr class="ro">
<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">37,109<span></span>
</td>
<td class="nump">31,882<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">$ 83,282<span></span>
</td>
<td class="nump">$ 67,923<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>82
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6829316768">
<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, 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_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">$ 183,470<span></span>
</td>
<td class="nump">$ 157,752<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: accumulated depreciation</a></td>
<td class="num">(92,074)<span></span>
</td>
<td class="num">(79,704)<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">91,396<span></span>
</td>
<td class="nump">78,048<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,589<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">45,067<span></span>
</td>
<td class="nump">33,189<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">9,095<span></span>
</td>
<td class="nump">6,513<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">66,542<span></span>
</td>
<td class="nump">61,835<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">27,378<span></span>
</td>
<td class="nump">21,312<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,904<span></span>
</td>
<td class="nump">$ 6,363<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>83
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824839408">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property, Plant and Equipment - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<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_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">$ 6,367,000<span></span>
</td>
<td class="nump">$ 6,327,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_PropertySubjectToOrAvailableForOperatingLeaseGross', window );">Buildings include rental property</a></td>
<td class="nump">800,000<span></span>
</td>
<td class="nump">5,750,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_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation', window );">Accumulated depreciation</a></td>
<td class="nump">$ 234,000<span></span>
</td>
<td class="nump">$ 3,069,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_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>84
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827061776">
<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, 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_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">$ 95,280<span></span>
</td>
</tr>
<tr class="re">
<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">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_ViDiSystemsS.A.Member', window );">ViDi Systems S.A. [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_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_GoodwillAcquiredDuringPeriod', window );">Goodwill acquired during the period</a></td>
<td class="nump">18,333<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. [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">1,476<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_EnShapeGmbHMember', window );">EnShape GmbH [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_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_GoodwillPeriodIncreaseDecrease', window );">Goodwill, adjustment</a></td>
<td class="num">$ (1,881)<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_GoodwillPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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) 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 50<br> -Paragraph 1<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_GoodwillPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_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_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_EnShapeGmbHMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_EnShapeGmbHMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827578720">
<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, 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_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">$ 60,724<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">50,611<span></span>
</td>
<td class="nump">47,535<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">10,113<span></span>
</td>
<td class="nump">13,189<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="ro">
<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">38,060<span></span>
</td>
<td class="nump">38,060<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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">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="re">
<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">13,687<span></span>
</td>
<td class="nump">13,687<span></span>
</td>
</tr>
<tr class="re">
<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,619<span></span>
</td>
<td class="nump">4,181<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">7,068<span></span>
</td>
<td class="nump">9,506<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="ro">
<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,607<span></span>
</td>
<td class="nump">8,607<span></span>
</td>
</tr>
<tr class="ro">
<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">5,716<span></span>
</td>
<td class="nump">5,202<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">2,891<span></span>
</td>
<td class="nump">3,405<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 );">Noncompete 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="nump">370<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">216<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">$ 154<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="ro">
<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="text">&#160;<span></span>
</td>
<td class="nump">370<span></span>
</td>
</tr>
<tr class="ro">
<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">92<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="text">&#160;<span></span>
</td>
<td class="nump">$ 278<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_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_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_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>86
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6666485392">
<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, 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_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">$ 2,701<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">2,185<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">2,017<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">1,691<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">989<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">530<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">$ 10,113<span></span>
</td>
<td class="nump">$ 13,189<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>87
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827431792">
<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, 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_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,039<span></span>
</td>
<td class="nump">$ 9,944<span></span>
</td>
</tr>
<tr class="re">
<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">9,134<span></span>
</td>
<td class="nump">13,721<span></span>
</td>
</tr>
<tr class="ro">
<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">6,507<span></span>
</td>
<td class="nump">5,479<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">4,816<span></span>
</td>
<td class="nump">4,260<span></span>
</td>
</tr>
<tr class="ro">
<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,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_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized', window );">Acquisition deferred and contingent liabilities</a></td>
<td class="nump">431<span></span>
</td>
<td class="nump">6,022<span></span>
</td>
</tr>
<tr class="ro">
<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,550<span></span>
</td>
<td class="nump">24,122<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">$ 60,220<span></span>
</td>
<td class="nump">$ 68,249<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>88
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842607648">
<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, 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_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,701<span></span>
</td>
<td class="nump">$ 4,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_ProductWarrantyAccrualWarrantiesIssued', window );">Provisions for warranties issued during the period</a></td>
<td class="nump">4,184<span></span>
</td>
<td class="nump">2,843<span></span>
</td>
</tr>
<tr class="ro">
<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">(4,024)<span></span>
</td>
<td class="num">(3,109)<span></span>
</td>
</tr>
<tr class="re">
<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="num">(118)<span></span>
</td>
<td class="nump">632<span></span>
</td>
</tr>
<tr class="ro">
<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,743<span></span>
</td>
<td class="nump">$ 4,701<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>89
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6724124032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - 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, 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_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted', window );">Purchase order outstanding</a></td>
<td class="nump">$ 11,097,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_OperatingLeasesRentExpenseNet', window );">Total annual rental expense</a></td>
<td class="nump">8,186,000<span></span>
</td>
<td class="nump">$ 6,738,000<span></span>
</td>
<td class="nump">$ 6,090,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_OperatingLeasesIncomeStatementLeaseRevenue', window );">Total annual rental income</a></td>
<td class="nump">$ 1,116,000<span></span>
</td>
<td class="nump">$ 1,474,000<span></span>
</td>
<td class="nump">$ 1,911,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_OperatingLeasesIncomeStatementLeaseRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 revenue recognized for the period from operating leases, including minimum lease revenue, contingent revenue, percentage revenue and sublease revenue.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div 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 25<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=77902458&amp;loc=d3e39896-112707<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesIncomeStatementLeaseRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OperatingLeasesRentExpenseNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease 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 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41499-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesRentExpenseNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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>90
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6826713536">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Future Minimum Rental Payments Under Lease Agreements (Detail)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2018 </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_OperatingLeasesFutureMinimumPaymentsDueAbstract', window );"><strong>Future minimum rental payments under lease agreements</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_OperatingLeasesFutureMinimumPaymentsDueCurrent', window );">2019</a></td>
<td class="nump">$ 7,086<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears', window );">2020</a></td>
<td class="nump">5,227<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears', window );">2021</a></td>
<td class="nump">4,109<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears', window );">2022</a></td>
<td class="nump">2,918<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears', window );">2023</a></td>
<td class="nump">2,209<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter', window );">Thereafter</a></td>
<td class="nump">1,198<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_OperatingLeasesFutureMinimumPaymentsDue', window );">Total</a></td>
<td class="nump">$ 22,747<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_OperatingLeasesFutureMinimumPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of one year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div 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 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 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 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_OperatingLeasesFutureMinimumPaymentsDueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_OperatingLeasesFutureMinimumPaymentsDueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in 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 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_OperatingLeasesFutureMinimumPaymentsDueInFiveYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in 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 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_OperatingLeasesFutureMinimumPaymentsDueInFourYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in 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 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 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 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_OperatingLeasesFutureMinimumPaymentsDueInThreeYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in 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 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 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 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_OperatingLeasesFutureMinimumPaymentsDueInTwoYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in 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 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 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 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_OperatingLeasesFutureMinimumPaymentsDueThereafter">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due 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>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 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>91
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825056336">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Future Minimum Rental Receipts Under Non - Cancelable Lease Agreements (Detail)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2018 </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_OperatingLeasesFutureMinimumPaymentsReceivableAbstract', window );"><strong>Future minimum rental receipts under non-cancelable lease agreements</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_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears', window );">2019</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_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears', window );">2020</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_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears', window );">2021</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_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears', window );">2022</a></td>
<td class="nump">307<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_OperatingLeasesFutureMinimumPaymentsReceivable', window );">Total</a></td>
<td class="nump">$ 1,228<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Future minimum rental payments in aggregate as of the balance sheet date under operating leases.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div 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 (b)<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_OperatingLeasesFutureMinimumPaymentsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_OperatingLeasesFutureMinimumPaymentsReceivableAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Future rental payments receivable within the fifth year from the balance sheet date under an operating 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 (b)<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_OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Future rental payments receivable within the fourth year from the balance sheet date under an operating 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 (b)<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_OperatingLeasesFutureMinimumPaymentsReceivableInFourYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Future rental payments receivable within the third year from the balance sheet date under an operating 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 (b)<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_OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Future rental payments receivable within the second year from the balance sheet date under an operating 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 (b)<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_OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>92
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824767728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Indemnification Provisions - Narrative (Details) - Discontinued Operations, Disposed of by Sale [Member] - Sisd [Member] - AMETEK Matter [Member] - Settled Litigation [Member] - Guarantee Obligations [Member]<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_LossContingenciesLineItems', window );"><strong>Loss Contingencies [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_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue', window );">Loss contingency, damages awarded, refund of product purchase price, value</a></td>
<td class="nump">$ 326,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_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue', window );">Loss contingency, damages awarded, reimbursement of legal fees, value</a></td>
<td class="nump">45,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_LitigationSettlementExpense', window );">Litigation settlement, expense</a></td>
<td class="nump">$ 281,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_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Loss Contingency, Damages Awarded, Refund Of Product Purchase Price, 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_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue</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_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Loss Contingency, Damages Awarded, Reimbursement Of Legal Fees, 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_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue</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_LitigationSettlementExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 litigation expense, including but not limited to legal, forensic, accounting, and investigative fees.</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_LitigationSettlementExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LossContingenciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_LossContingenciesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisposalGroupClassificationAxis=us-gaap_DiscontinuedOperationsDisposedOfBySaleMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisposalGroupClassificationAxis=us-gaap_DiscontinuedOperationsDisposedOfBySaleMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis=cgnx_SisdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis=cgnx_SisdMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_LitigationCaseAxis=cgnx_AMETEKMatterMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_LitigationCaseAxis=cgnx_AMETEKMatterMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_LitigationStatusAxis=us-gaap_SettledLitigationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_LitigationStatusAxis=us-gaap_SettledLitigationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_LossContingenciesByNatureOfContingencyAxis=us-gaap_GuaranteeObligationsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_LossContingenciesByNatureOfContingencyAxis=us-gaap_GuaranteeObligationsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>93
<FILENAME>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842606544">
<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, 2018</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>94
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6844354208">
<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, 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>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>HUF (Ft)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>SGD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>KRW (&#8361;)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </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 );">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="ro">
<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">$ 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>
<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 );">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="re">
<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">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">&#165; 380,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,049<span></span>
</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; 455,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 );">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,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>
<td class="nump">2,232<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#163; 1,650<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 );">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="re">
<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,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>
<td class="nump">1,708<span></span>
</td>
<td class="text">&#160;<span></span>
</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; 1,825,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 );">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="ro">
<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">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>
<td class="nump">2,110<span></span>
</td>
<td class="nump">Ft 545,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="re">
<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,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>
<td class="nump">1,278<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 37,725<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="ro">
<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">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>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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_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="re">
<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">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>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 );">Swiss Franc [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">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,401<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,365<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_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_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_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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_CHF">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_CHF</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>95
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6669446384">
<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, 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_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">$ 1<span></span>
</td>
<td class="nump">$ 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_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">106<span></span>
</td>
<td class="nump">13<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">1<span></span>
</td>
<td class="nump">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_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">$ 106<span></span>
</td>
<td class="nump">$ 13<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>96
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842615760">
<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, 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_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">$ 1<span></span>
</td>
<td class="nump">$ 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_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">1<span></span>
</td>
<td class="nump">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_DerivativeFairValueOfDerivativeLiability', window );">Derivative Liability, Fair Value, Gross Liability</a></td>
<td class="nump">106<span></span>
</td>
<td class="nump">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_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">$ 106<span></span>
</td>
<td class="nump">$ 13<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>97
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6828817616">
<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, 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_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">$ 41<span></span>
</td>
<td class="num">$ (398)<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_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax', window );">Gains (losses) recorded in shareholders' equity (effective portion)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">37<span></span>
</td>
</tr>
<tr class="ro">
<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">41<span></span>
</td>
<td class="num">(398)<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="ro">
<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">30<span></span>
</td>
<td class="num">(438)<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="re">
<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">3<span></span>
</td>
<td class="nump">13<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="ro">
<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">8<span></span>
</td>
<td class="nump">27<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="re">
<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="ro">
<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="num">$ (285)<span></span>
</td>
<td class="nump">$ 270<span></span>
</td>
<td class="num">$ (515)<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_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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 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 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 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_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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=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>98
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824998672">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments - Changes in AOCI (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2017</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_AOCIAttributableToParentNetOfTaxRollForward', window );"><strong>Accumulated Other Comprehensive Income (Loss), Net of Tax [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>
</tr>
<tr class="ro">
<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="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="num">$ (34,599)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="num">(34,599)<span></span>
</td>
<td class="num">$ (40,501)<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_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember', window );">Accumulated Net Gain (Loss) from Designated or Qualifying Cash Flow Hedges [Member]</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>
</tr>
<tr class="re">
<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">37<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTax', window );">Net unrealized gain on cash flow hedges</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax', window );">Reclassification of net realized gain on cash flow hedges into current operations</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(41)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="th" style="border-bottom: 0px;"><sup></sup></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_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Balance as of December 31, 2018</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 37<span></span>
</td>
<td class="nump">$ 0<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 amounts have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend</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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 other comprehensive income (loss).</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 (b)<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 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 220<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=109228884&amp;loc=d3e1436-108581<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 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-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_OtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 adjustments of other comprehensive income (loss).</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 17B<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL34724394-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 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=109228884&amp;loc=d3e1436-108581<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>99
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6637180480">
<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, 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_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,514,000<span></span>
</td>
<td class="nump">$ 3,230,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>100
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842281312">
<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, 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_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">$ 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">$ 182,922<span></span>
</td>
<td class="nump">$ 266,042<span></span>
</td>
<td class="nump">$ 178,080<span></span>
</td>
<td class="nump">$ 139,039<span></span>
</td>
<td class="nump">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
<td class="nump">$ 529,515<span></span>
</td>
</tr>
<tr class="re">
<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">206,052<span></span>
</td>
<td class="nump">187,289<span></span>
</td>
<td class="nump">131,070<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">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">138,390<span></span>
</td>
<td class="nump">197,981<span></span>
</td>
<td class="nump">135,916<span></span>
</td>
<td class="nump">106,507<span></span>
</td>
<td class="nump">600,286<span></span>
</td>
<td class="nump">578,794<span></span>
</td>
<td class="nump">398,445<span></span>
</td>
</tr>
<tr class="re">
<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">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">50,775<span></span>
</td>
<td class="nump">110,849<span></span>
</td>
<td class="nump">60,021<span></span>
</td>
<td class="nump">37,216<span></span>
</td>
<td class="nump">221,142<span></span>
</td>
<td class="nump">258,861<span></span>
</td>
<td class="nump">154,066<span></span>
</td>
</tr>
<tr class="ro">
<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">234,574<span></span>
</td>
<td class="nump">266,464<span></span>
</td>
<td class="nump">162,077<span></span>
</td>
</tr>
<tr class="re">
<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">15,307<span></span>
</td>
<td class="nump">89,752<span></span>
</td>
<td class="nump">18,128<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">$ 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="num">$ (27,747)<span></span>
</td>
<td class="nump">$ 102,493<span></span>
</td>
<td class="nump">$ 56,495<span></span>
</td>
<td class="nump">$ 45,471<span></span>
</td>
<td class="nump">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
<td class="nump">$ 143,694<span></span>
</td>
</tr>
<tr class="re">
<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.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="num">$ (0.16)<span></span>
</td>
<td class="nump">$ 0.59<span></span>
</td>
<td class="nump">$ 0.33<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
<td class="nump">$ 1.27<span></span>
</td>
<td class="nump">$ 1.02<span></span>
</td>
<td class="nump">$ 0.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_EarningsPerShareDiluted', window );">Net income (in dollars per share)</a></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="num">$ (0.16)<span></span>
</td>
<td class="nump">$ 0.57<span></span>
</td>
<td class="nump">$ 0.32<span></span>
</td>
<td class="nump">$ 0.25<span></span>
</td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 0.98<span></span>
</td>
<td class="nump">$ 0.83<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_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="text">&#160;<span></span>
</td>
<td class="nump">$ 747,950<span></span>
</td>
<td class="nump">$ 520,753<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="nump">168,698<span></span>
</td>
<td class="nump">115,590<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">579,252<span></span>
</td>
<td class="nump">405,163<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">259,319<span></span>
</td>
<td class="nump">160,784<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="nump">266,922<span></span>
</td>
<td class="nump">168,795<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="nump">89,744<span></span>
</td>
<td class="nump">18,968<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="text">&#160;<span></span>
</td>
<td class="nump">$ 177,178<span></span>
</td>
<td class="nump">$ 149,572<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="nump">$ 1.02<span></span>
</td>
<td class="nump">$ 0.88<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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.99<span></span>
</td>
<td class="nump">$ 0.86<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 );">Adjustment [Member] | Accounting Standards Update 2014-09 [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_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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,133<span></span>
</td>
<td class="nump">$ 8,762<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="nump">18,591<span></span>
</td>
<td class="nump">15,480<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(458)<span></span>
</td>
<td class="num">(6,718)<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(458)<span></span>
</td>
<td class="num">(6,718)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="text">&#160;<span></span>
</td>
<td class="num">(458)<span></span>
</td>
<td class="num">(6,718)<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="nump">8<span></span>
</td>
<td class="num">(840)<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="text">&#160;<span></span>
</td>
<td class="num">$ (466)<span></span>
</td>
<td class="num">$ (5,878)<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="nump">$ 0.00<span></span>
</td>
<td class="num">$ (0.04)<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ (0.01)<span></span>
</td>
<td class="num">$ (0.03)<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>
<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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AccountingStandardsUpdate201409Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6830406832">
<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" colspan="2"><div>Dec. 31, 2018</div></th>
<th class="th" colspan="2"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Dec. 31, 2016</div></th>
<th class="th"><div>Dec. 31, 2015</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="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">$ 34,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">$ 30,683<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">5,062<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">11,503<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">9,845<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">9,420<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">$ 7,078<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">668,587<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">644,622<span></span>
</td>
<td class="nump">$ 573,286<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="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">30,800<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">11,391<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">9,969<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="fn" style="border-bottom: 0px;"></td>
<td class="nump">668,267<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">643,836<span></span>
</td>
<td class="nump">566,622<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RestatementAxis=srt_RestatementAdjustmentMember', window );">Adjustment [Member] | Accounting Standards Update 2014-09 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(117)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">112<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(549)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="fn" style="border-bottom: 0px;"></td>
<td class="nump">$ 320<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">$ 786<span></span>
</td>
<td class="nump">$ 6,664<span></span>
</td>
</tr>
<tr><td colspan="7"></td></tr>
<tr><td colspan="7"><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</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_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>
<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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AccountingStandardsUpdate201409Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6834755392">
<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, 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_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">$ 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">$ 182,922<span></span>
</td>
<td class="nump">$ 266,042<span></span>
</td>
<td class="nump">$ 178,080<span></span>
</td>
<td class="nump">$ 139,039<span></span>
</td>
<td class="nump">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
<td class="nump">$ 529,515<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">654,509<span></span>
</td>
<td class="nump">603,196<span></span>
</td>
<td class="nump">413,425<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">151,829<span></span>
</td>
<td class="nump">162,887<span></span>
</td>
<td class="nump">116,090<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">267,043<span></span>
</td>
<td class="nump">214,338<span></span>
</td>
<td class="nump">162,359<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">307,965<span></span>
</td>
<td class="nump">328,826<span></span>
</td>
<td class="nump">230,311<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">126,109<span></span>
</td>
<td class="nump">108,738<span></span>
</td>
<td class="nump">66,179<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,221<span></span>
</td>
<td class="nump">$ 114,181<span></span>
</td>
<td class="nump">$ 70,666<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>103
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6824876032">
<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, 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_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,420<span></span>
</td>
<td class="nump">$ 7,078<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Increases to deferred revenue and customer deposits</a></td>
<td class="nump">63,231<span></span>
</td>
<td class="nump">24,985<span></span>
</td>
</tr>
<tr class="ro">
<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">(61,819)<span></span>
</td>
<td class="num">(23,195)<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">(987)<span></span>
</td>
<td class="nump">552<span></span>
</td>
</tr>
<tr class="ro">
<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">$ 9,845<span></span>
</td>
<td class="nump">$ 9,420<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>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>104
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6843216288">
<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="5">3 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, 2018 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Sep. 30, 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>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Apr. 02, 2017 </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2016 </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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">200,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
<td class="nump">200,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="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="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>
</tr>
<tr class="ro">
<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="nump">$ 0.002<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">$ 203,822,000<span></span>
</td>
<td class="nump">$ 123,715,000<span></span>
</td>
<td class="nump">$ 47,149,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.0500<span></span>
</td>
<td class="nump">$ 0.0425<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.0450<span></span>
</td>
<td class="nump">$ 0.0375<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">31,865,000<span></span>
</td>
<td class="nump">$ 29,037,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="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>
</tr>
<tr class="ro">
<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="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>
</tr>
<tr class="re">
<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="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>
</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="nump">$ 191,378,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">$ 191,378,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">$ 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">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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">$ 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>
<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="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="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_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="re">
<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 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="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>
</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_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>105
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6830731760">
<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>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($) </div>
<div>Employees </div>
<div>$ / shares </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>
<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl 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 | Employees</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">8.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_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>
</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">$ 1,283,000<span></span>
</td>
<td class="nump">$ 673,000<span></span>
</td>
<td class="nump">$ 334,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant-date fair values of stock options granted | $ / shares</a></td>
<td class="nump">$ 20.84<span></span>
</td>
<td class="nump">$ 15.59<span></span>
</td>
<td class="nump">$ 6.33<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">$ 52,629,000<span></span>
</td>
<td class="nump">$ 136,672,000<span></span>
</td>
<td class="nump">$ 55,580,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue', window );">Total fair values of stock options vested</a></td>
<td class="nump">31,106,000<span></span>
</td>
<td class="nump">21,519,000<span></span>
</td>
<td class="nump">18,114,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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Total unrecognized compensation expense related to non-vested stock options</a></td>
<td class="nump">$ 49,229,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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Recognition period for unrecognized compensation expense</a></td>
<td class="text">1 year 6 months 21 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 41,090,000<span></span>
</td>
<td class="nump">31,942,000<span></span>
</td>
<td class="nump">20,558,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_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="nump">7,317,000<span></span>
</td>
<td class="nump">10,473,000<span></span>
</td>
<td class="nump">6,747,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_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount', window );">Compensation expense capitalized</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="re">
<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="ro">
<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">19,578,752<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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>
</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>
</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>
</tr>
<tr class="ro">
<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_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>
</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>
</tr>
<tr class="re">
<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="ro">
<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">1 year<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>
</tr>
<tr class="ro">
<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_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>
</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>
</tr>
<tr class="re">
<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="ro">
<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>
</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>106
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6829479408">
<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, 2018 </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">12,726<span></span>
</td>
</tr>
<tr class="re">
<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,997<span></span>
</td>
</tr>
<tr class="ro">
<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">(1,493)<span></span>
</td>
</tr>
<tr class="re">
<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">(441)<span></span>
</td>
</tr>
<tr class="ro">
<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">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_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">$ 25.24<span></span>
</td>
</tr>
<tr class="re">
<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">52.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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted-average exercise price | $ / shares</a></td>
<td class="nump">17.94<span></span>
</td>
</tr>
<tr class="re">
<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">33.59<span></span>
</td>
</tr>
<tr class="ro">
<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">$ 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable, Shares | shares</a></td>
<td class="nump">4,556<span></span>
</td>
</tr>
<tr class="ro">
<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">12,499<span></span>
</td>
</tr>
<tr class="re">
<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">$ 20.94<span></span>
</td>
</tr>
<tr class="ro">
<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">$ 30.60<span></span>
</td>
</tr>
<tr class="re">
<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 4 months 10 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 10 months 6 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 2 months 23 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Outstanding, aggregate intrinsic value | $</a></td>
<td class="nump">$ 146,270<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">82,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Options vested or expected to vest, aggregate intrinsic value | $</a></td>
<td class="nump">$ 141,643<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>107
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825008432">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail) - Employee Stock Option [Member]<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free rate</a></td>
<td class="nump">2.90%<span></span>
</td>
<td class="nump">2.40%<span></span>
</td>
<td class="nump">1.70%<span></span>
</td>
</tr>
<tr class="re">
<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.35%<span></span>
</td>
<td class="nump">0.40%<span></span>
</td>
<td class="nump">0.83%<span></span>
</td>
</tr>
<tr class="ro">
<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">39.00%<span></span>
</td>
<td class="nump">41.00%<span></span>
</td>
<td class="nump">41.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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected term (in years)</a></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>
<td class="text">5 years 7 months 6 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_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_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>108
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6826894000">
<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 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, 2018 </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_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">20<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted | shares</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested | shares</a></td>
<td class="num">(20)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited or expired | shares</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested ending 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_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">$ 17.03<span></span>
</td>
</tr>
<tr class="re">
<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">0.00<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested, weighted-average exercise price | $ / shares</a></td>
<td class="nump">17.03<span></span>
</td>
</tr>
<tr class="re">
<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">0.00<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested ending balance, weighted-average exercise price | $ / shares</a></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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Vested, aggregate intrinsic value | $</a></td>
<td class="nump">$ 993<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested', window );">Nonvested, aggregate intrinsic value | $</a></td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of equity-based compensation awards not vested. Excludes stock and unit 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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of equity-based compensation awards vested. Excludes stock and unit 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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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>109
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6831030608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 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>
</tr>
<tr class="ro">
<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 6 months 21 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="ro">
<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">$ 41,090,000<span></span>
</td>
<td class="nump">$ 31,942,000<span></span>
</td>
<td class="nump">$ 20,558,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_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="nump">7,317,000<span></span>
</td>
<td class="nump">10,473,000<span></span>
</td>
<td class="nump">6,747,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount', window );">Compensation expense capitalized</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="ro">
<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>
</tr>
<tr class="re">
<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">2,447,000<span></span>
</td>
<td class="nump">1,881,000<span></span>
</td>
<td class="nump">1,052,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_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research, development, and engineering expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="ro">
<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">14,578,000<span></span>
</td>
<td class="nump">11,022,000<span></span>
</td>
<td class="nump">6,271,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_IncomeStatementLocationAxis=cgnx_SellingGeneralAndAdministrativeMember', window );">Selling, general, and administrative [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="re">
<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">$ 24,065,000<span></span>
</td>
<td class="nump">$ 19,039,000<span></span>
</td>
<td class="nump">$ 13,235,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6826807728">
<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="1">2 Months Ended</th>
<th class="th" colspan="1">10 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>Oct. 31, 2018</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_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>
<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">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="nump">50.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 " 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="nump">20.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_CompanyContributionsVestAtEndOfThreeYears', window );">Company contributions vest at end of three years</a></td>
<td class="nump">50.00%<span></span>
</td>
<td class="nump">40.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="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="nump">60.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_CompanyContributionsVestAtEndOfFiveYears', window );">Company contributions vest at end of five years</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="nump">100.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 " 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,540,000<span></span>
</td>
<td class="nump">$ 2,030,000<span></span>
</td>
<td class="nump">$ 1,712,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_TitleOfIndividualAxis=cgnx_HighlyCompensatedEmployeeMember', window );">Highly Compensated Employee</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="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>
</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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TitleOfIndividualAxis=cgnx_HighlyCompensatedEmployeeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TitleOfIndividualAxis=cgnx_HighlyCompensatedEmployeeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6828119360">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 01, 2018</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_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">$ 39,042,000<span></span>
</td>
<td class="nump">$ 30,345,000<span></span>
</td>
<td class="nump">$ 23,939,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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign income from continuing operations before taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">195,532,000<span></span>
</td>
<td class="nump">236,119,000<span></span>
</td>
<td class="nump">$ 138,138,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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="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_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense', window );">Estimated tax expense</a></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>
<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_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability', window );">One-time transition tax payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 90,351,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_IncomeTaxReconciliationChangeInEnactedTaxRate', window );">Decrease in tax expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,843,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="nump">21.00%<span></span>
</td>
<td class="nump">35.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">$ 104,655,000<span></span>
</td>
<td class="nump">$ 97,951,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="nump">9.00%<span></span>
</td>
<td class="nump">27.00%<span></span>
</td>
<td class="nump">17.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="nump">$ 8,488,000<span></span>
</td>
<td class="nump">$ 38,569,000<span></span>
</td>
<td class="nump">$ 11,889,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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther', window );">Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Other</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,847,000<span></span>
</td>
<td class="nump">$ 2,502,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_DeferredTaxAssetsStateTaxes', window );">Deferred Tax Assets, State Taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 620,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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Discrete tax benefit related to employee stock option exercises</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">14.00%<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">$ 223,454,000<span></span>
</td>
<td class="nump">$ 224,323,000<span></span>
</td>
<td class="nump">$ 182,081,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="nump">209,904,000<span></span>
</td>
<td class="nump">100,121,000<span></span>
</td>
<td class="nump">29,231,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="nump">91,000<span></span>
</td>
<td class="nump">71,000<span></span>
</td>
<td class="nump">92,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">8,134,000<span></span>
</td>
<td class="nump">7,516,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">7,106,000<span></span>
</td>
<td class="nump">6,488,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="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">840,000<span></span>
</td>
<td class="nump">767,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="nump">1,200,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,300,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_DeferredTaxLiabilitiesGrossCurrent', window );">Net non-current deferred tax liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(962,000)<span></span>
</td>
<td class="num">(312,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">44,000<span></span>
</td>
<td class="nump">87,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="nump">$ 41,430,000<span></span>
</td>
<td class="nump">$ 11,802,000<span></span>
</td>
<td class="nump">20,748,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">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">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">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">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">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">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>
</tr>
<tr class="ro">
<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>
</tr>
<tr class="re">
<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">$ 803,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>
</tr>
<tr class="re">
<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>
</tr>
<tr class="ro">
<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">8,423,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>
</tr>
<tr class="ro">
<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>
</tr>
<tr class="re">
<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">$ 446,346,000<span></span>
</td>
<td class="nump">$ 498,653,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>
</tr>
<tr class="re">
<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>
</tr>
<tr class="ro">
<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>
</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>
</tr>
<tr class="ro">
<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>
</tr>
<tr class="re">
<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">$ 9,964,000<span></span>
</td>
<td class="nump">$ 7,871,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_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_DeferredTaxAssetsStateTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 state taxes.</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_DeferredTaxAssetsStateTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 reserves and accruals, 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 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 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 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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_IncomeTaxReconciliationChangeInEnactedTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 increase (decrease) 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 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 45<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e32059-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 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_IncomeTaxReconciliationChangeInEnactedTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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>
</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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6826757632">
<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, 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_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">$ 10,624<span></span>
</td>
<td class="nump">$ 78,152<span></span>
</td>
<td class="nump">$ 14,459<span></span>
</td>
</tr>
<tr class="re">
<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="num">(879)<span></span>
</td>
<td class="nump">2,687<span></span>
</td>
<td class="num">(617)<span></span>
</td>
</tr>
<tr class="ro">
<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">6,307<span></span>
</td>
<td class="nump">7,624<span></span>
</td>
<td class="nump">7,309<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">16,052<span></span>
</td>
<td class="nump">88,463<span></span>
</td>
<td class="nump">21,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_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="num">(1,271)<span></span>
</td>
<td class="nump">1,569<span></span>
</td>
<td class="num">(3,031)<span></span>
</td>
</tr>
<tr class="ro">
<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">554<span></span>
</td>
<td class="num">(639)<span></span>
</td>
<td class="nump">1,066<span></span>
</td>
</tr>
<tr class="re">
<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">(28)<span></span>
</td>
<td class="nump">359<span></span>
</td>
<td class="num">(1,058)<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">(745)<span></span>
</td>
<td class="nump">1,289<span></span>
</td>
<td class="num">(3,023)<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="nump">$ 15,307<span></span>
</td>
<td class="nump">$ 89,752<span></span>
</td>
<td class="nump">$ 18,128<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>113
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6723663968">
<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)<br></strong></div></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>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_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_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">35.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_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes', window );">State income taxes, net of federal benefit</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " 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">(27.00%)<span></span>
</td>
<td class="num">(17.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_EffectiveIncomeTaxRateReconciliationTaxCredits', window );">Tax credit</a></td>
<td class="nump">(0.00%)<span></span>
</td>
<td class="num">(1.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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Discrete tax benefit related to employee stock option exercises</a></td>
<td class="num">(4.00%)<span></span>
</td>
<td class="num">(14.00%)<span></span>
</td>
<td class="num">(7.00%)<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_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent', window );">Discrete tax expense (benefit) related to 2017 Tax Act</a></td>
<td class="num">(3.00%)<span></span>
</td>
<td class="nump">36.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">5.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 );">Other discrete tax events</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(1.00%)<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments', window );">Other</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">0.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 on continuing operations</a></td>
<td class="nump">7.00%<span></span>
</td>
<td class="nump">34.00%<span></span>
</td>
<td class="nump">11.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_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>114
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6724136224">
<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, 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_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">$ 6,749<span></span>
</td>
<td class="nump">$ 5,719<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions', window );">Gross amounts of decreases in unrecognized tax benefits as a result of tax positions taken in prior periods</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(56)<span></span>
</td>
</tr>
<tr class="ro">
<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">69<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">1,499<span></span>
</td>
<td class="nump">1,993<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities', window );">Gross amounts of decreases in unrecognized tax benefits relating to settlements with taxing authorities</a></td>
<td class="text">&#160;<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_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,023)<span></span>
</td>
<td class="num">(791)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</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_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 settlements with taxing authorities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div 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)(3)<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_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_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>115
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6829236896">
<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, 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_DeferredTaxAssetsNetNoncurrentClassificationAbstract', window );"><strong>Non-current 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_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 13,818<span></span>
</td>
<td class="nump">$ 11,664<span></span>
</td>
</tr>
<tr class="re">
<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 );">Federal and state tax credit carryforwards</a></td>
<td class="nump">7,395<span></span>
</td>
<td class="nump">6,707<span></span>
</td>
</tr>
<tr class="ro">
<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">5,470<span></span>
</td>
<td class="nump">5,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_DeferredTaxAssetsInventory', window );">Inventory and revenue related</a></td>
<td class="nump">3,233<span></span>
</td>
<td class="nump">3,415<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_NoncurrentDeferredTaxAssetsDeprecation', window );">Depreciation</a></td>
<td class="nump">2,475<span></span>
</td>
<td class="nump">2,279<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">2,425<span></span>
</td>
<td class="nump">3,012<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">34,816<span></span>
</td>
<td class="nump">32,781<span></span>
</td>
</tr>
<tr class="re">
<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 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 " 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="num">(44)<span></span>
</td>
<td class="num">(87)<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_DeferredTaxLiabilitiesNoncurrent', window );">Gross non-current deferred tax liabilities</a></td>
<td class="num">(44)<span></span>
</td>
<td class="num">(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_DeferredTaxAssetsValuationAllowanceNoncurrent', window );">Valuation allowance</a></td>
<td class="num">(6,112)<span></span>
</td>
<td class="num">(5,309)<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_DeferredTaxAssetsLiabilitiesNetNoncurrent', window );">Net non-current deferred tax assets</a></td>
<td class="nump">28,660<span></span>
</td>
<td class="nump">27,385<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGrossClassificationAbstract', window );"><strong>Non-current deferred tax liabilities:</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_DeferredTaxLiabilitiesOther', window );">Other</a></td>
<td class="num">(962)<span></span>
</td>
<td class="num">(312)<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">$ 962<span></span>
</td>
<td class="nump">$ 312<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tax credit carry forwards foreign and state.</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_DeferredTaxAssetsTaxCreditCarryforwardsForeignAndState</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_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_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_DeferredTaxLiabilitiesGrossClassificationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DeferredTaxLiabilitiesGrossClassificationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_DeferredTaxLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31958-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 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_DeferredTaxLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>116
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6844249584">
<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, 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_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">172,333<span></span>
</td>
<td class="nump">173,287<span></span>
</td>
<td class="nump">170,676<span></span>
</td>
</tr>
<tr class="re">
<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">5,073<span></span>
</td>
<td class="nump">6,264<span></span>
</td>
<td class="nump">3,468<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">177,406<span></span>
</td>
<td class="nump">179,551<span></span>
</td>
<td class="nump">174,144<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>117
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6724976496">
<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="1">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2017</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_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">7,145<span></span>
</td>
<td class="nump">2,650,164<span></span>
</td>
<td class="nump">3,363,141<span></span>
</td>
<td class="nump">4,391,598<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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>118
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6813459488">
<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, 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_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="nump">15.00%<span></span>
</td>
<td class="nump">20.00%<span></span>
</td>
<td class="nump">17.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">30.00%<span></span>
</td>
<td class="nump">40.00%<span></span>
</td>
<td class="nump">10.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>119
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6842484288">
<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, 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_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">$ 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">$ 182,922<span></span>
</td>
<td class="nump">$ 266,042<span></span>
</td>
<td class="nump">$ 178,080<span></span>
</td>
<td class="nump">$ 139,039<span></span>
</td>
<td class="nump">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
<td class="nump">$ 529,515<span></span>
</td>
</tr>
<tr class="re">
<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,321<span></span>
</td>
<td class="nump">80,539<span></span>
</td>
<td class="nump">56,311<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">231,760<span></span>
</td>
<td class="nump">180,248<span></span>
</td>
<td class="nump">142,380<span></span>
</td>
</tr>
<tr class="re">
<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">67,156<span></span>
</td>
<td class="nump">53,983<span></span>
</td>
<td class="nump">40,404<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">307,965<span></span>
</td>
<td class="nump">328,826<span></span>
</td>
<td class="nump">230,311<span></span>
</td>
</tr>
<tr class="re">
<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">23,948<span></span>
</td>
<td class="nump">22,437<span></span>
</td>
<td class="nump">12,981<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">126,109<span></span>
</td>
<td class="nump">108,738<span></span>
</td>
<td class="nump">66,179<span></span>
</td>
</tr>
<tr class="re">
<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,482<span></span>
</td>
<td class="nump">1,594<span></span>
</td>
<td class="nump">994<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">140,504<span></span>
</td>
<td class="nump">148,271<span></span>
</td>
<td class="nump">90,645<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 2,735<span></span>
</td>
<td class="nump">$ 2,525<span></span>
</td>
<td class="nump">$ 1,932<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>120
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6826904560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Discontinued Operations - (Details) - USD ($)<br></strong></div></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>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_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity', window );">Net income (loss) from discontinued operations (Note 20)</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (255,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_LitigationStatusAxis=us-gaap_SettledLitigationMember', window );">Settled Litigation [Member] | AMETEK Matter [Member] | Guarantee Obligations [Member] | Sisd [Member] | Discontinued Operations, Disposed of by Sale [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue', window );">Loss contingency, damages awarded, refund of product purchase price, value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">326,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue', window );">Loss contingency, damages awarded, reimbursement of legal fees, value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">45,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_LitigationSettlementExpense', window );">Litigation settlement, expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">281,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_LegalFees', window );">Legal fees</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">123,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_DiscontinuedOperationTaxEffectOfDiscontinuedOperation', window );">Income tax expense (benefit) on discontinued operations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(149,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_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity', window );">Net income (loss) from discontinued operations (Note 20)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (255,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_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Loss Contingency, Damages Awarded, Refund Of Product Purchase Price, 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_LossContingencyDamagesAwardedRefundOfProductPurchasePriceValue</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_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Loss Contingency, Damages Awarded, Reimbursement Of Legal Fees, 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_LossContingencyDamagesAwardedReimbursementOfLegalFeesValue</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_DiscontinuedOperationTaxEffectOfDiscontinuedOperation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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) related to a discontinued operation. Includes, but is not limited to, tax expense (benefit) related to income (loss) from operations during the phase-out period, tax expense (benefit) related to gain (loss) on disposal, tax expense (benefit) related to gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and tax expense (benefit) related to adjustments of a prior period gain (loss) on disposal.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3B<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=SL51721525-107759<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 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109238882&amp;loc=d3e38679-109324<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 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32672-109319<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=d3e1012-107759<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=d3e1361-107760<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3A<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=SL51721523-107759<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5C<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721675-107760<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721673-107760<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DiscontinuedOperationTaxEffectOfDiscontinuedOperation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 income (loss) from a discontinued operation attributable to the parent. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=d3e957-107759<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3A<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=SL51721523-107759<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3B<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=SL51721525-107759<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=d3e1361-107760<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5C<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721675-107760<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721673-107760<br><br>Reference 7: 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 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=d3e1012-107759<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LegalFees">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 provided in the period for legal costs incurred on or before the balance sheet date pertaining to resolved, pending or threatened litigation, including arbitration and mediation proceedings.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.3)<br> -URI 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_LegalFees</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LitigationSettlementExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 litigation expense, including but not limited to legal, forensic, accounting, and investigative fees.</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_LitigationSettlementExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LitigationStatusAxis=us-gaap_SettledLitigationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_LitigationStatusAxis=us-gaap_SettledLitigationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_LitigationCaseAxis=cgnx_AMETEKMatterMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_LitigationCaseAxis=cgnx_AMETEKMatterMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_LossContingenciesByNatureOfContingencyAxis=us-gaap_GuaranteeObligationsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_LossContingenciesByNatureOfContingencyAxis=us-gaap_GuaranteeObligationsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis=cgnx_SisdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis=cgnx_SisdMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_DisposalGroupClassificationAxis=us-gaap_DiscontinuedOperationsDisposedOfBySaleMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisposalGroupClassificationAxis=us-gaap_DiscontinuedOperationsDisposedOfBySaleMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>121
<FILENAME>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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6826933168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Discontinued Operations - Schedule of Discontinued Operations (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, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Dec. 31, 2016</div></th>
</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_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity', window );">Net income (loss) from discontinued operations</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (255)<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_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 income (loss) from a discontinued operation attributable to the parent. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=d3e957-107759<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3A<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=SL51721523-107759<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3B<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=SL51721525-107759<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=d3e1361-107760<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5C<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721675-107760<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721673-107760<br><br>Reference 7: 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 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109222160&amp;loc=d3e1012-107759<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>122
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6637883744">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions Acquisitions - (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2018 </div>
<div>acquisition</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_NumberOfBusinessesAcquired', window );">Number of acquisitions</a></td>
<td class="nump">6<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>123
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6830778480">
<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="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. 09, 2016</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="num">$ (3,000)<span></span>
</td>
<td class="num">$ (28,000)<span></span>
</td>
<td class="num">$ (463,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. [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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">1,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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration liability</a></td>
<td class="nump">1,299,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,646,000<span></span>
</td>
<td class="nump">1,581,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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow', window );">Contingent consideration, low range</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="nump">$ 2,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>
<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_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition', window );">Milestone recognition period</a></td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="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_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>
<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. [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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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>
<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]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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. [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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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>
<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_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, Contingent Consideration Arrangements, Period of Recognition</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_BusinessCombinationContingentConsiderationArrangementsPeriodofRecognition</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_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_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_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_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>124
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827919008">
<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, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Apr. 12, 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_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">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 95,280<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_GViVenturesInc.Member', window );">GVi Ventures, Inc. [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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Accounts receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 423<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">120<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="num">(152)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses', window );">Accrued expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(10)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">1,476<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,368<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. [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="nump">910<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. [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="nump">$ 2,600<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_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>125
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6828385200">
<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></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,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_PaymentsToAcquireBusinessesGross', window );">Cash paid in purchase price</a></td>
<td class="nump">20,019,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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Holdback security</a></td>
<td class="nump">2,996,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_Taxdeductiblegoodwill', window );">Tax deductible goodwill</a></td>
<td class="nump">$ 5,112,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_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>126
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6829005184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Webscan, Inc. Narrative (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">1 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 09, 2016</div></th>
<th class="th"><div>Jan. 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_BusinessAcquisitionAxis=cgnx_WebscanInc.Member', window );">Webscan, Inc. [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_BusinessCombinationConsiderationTransferred1', window );">Purchase price</a></td>
<td class="nump">$ 3,176,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_PaymentsToAcquireBusinessesGross', window );">Cash paid in purchase price</a></td>
<td class="nump">3,000,000<span></span>
</td>
<td class="nump">$ 176,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_Taxdeductiblegoodwill', window );">Tax deductible goodwill</a></td>
<td class="nump">$ 287,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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', 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_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>
<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] | Webscan, Inc. [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">5 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_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_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_WebscanInc.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_WebscanInc.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_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_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>127
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6829943568">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Webscan, Inc Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></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>
<th class="th"><div>Dec. 09, 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_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">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="nump">$ 95,280<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_WebscanInc.Member', window );">Webscan, Inc. [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_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">$ 504<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">296<span></span>
</td>
</tr>
<tr class="re">
<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">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_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">925<span></span>
</td>
</tr>
<tr class="re">
<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">(77)<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">3,176<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] | Webscan, Inc. [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">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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember', window );">Completed Technologies [Member] | Webscan, Inc. [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">$ 840<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_WebscanInc.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_WebscanInc.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_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_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>128
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6844718960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Chiaro Technologies LLC (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 09, 2016</div></th>
<th class="th"><div>Nov. 30, 2016</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="num">$ (3,000)<span></span>
</td>
<td class="num">$ (28,000)<span></span>
</td>
<td class="num">$ (463,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_ChiaroTechnologiesLLCMember', window );">Chiaro Technologies LLC [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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="nump">$ 4,149,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_PaymentsToAcquireBusinessesGross', window );">Cash paid in purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,538,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_BusinessCombinationContingentConsiderationLiabilityNoncurrent', window );">Contingent consideration, noncurrent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">611,000<span></span>
</td>
<td class="nump">908,000<span></span>
</td>
<td class="nump">626,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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow', window );">Contingent consideration, low range</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="nump">1,250,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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Revaluation of contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 282,000<span></span>
</td>
<td class="nump">$ 15,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_Taxdeductiblegoodwill', window );">Tax deductible goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 902,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] | Chiaro Technologies LLC [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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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>
<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_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_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_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_BusinessCombinationContingentConsiderationLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, expected to be settled beyond 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 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><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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_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>
<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>129
<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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6821906784">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Chiaro Technologies LLC Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></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>
<th class="th"><div>Nov. 30, 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_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">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="nump">$ 95,280<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 [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_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">$ 3<span></span>
</td>
</tr>
<tr class="ro">
<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">2,911<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">(115)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">4,149<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] | Chiaro Technologies LLC [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">$ 1,350<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_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_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_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>
<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>130
<FILENAME>R116.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6724122800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - EnShape GmbH Narrative (Details) - EnShape GmbH [Member] - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Nov. 30, 2016</div></th>
<th class="th"><div>Oct. 27, 2016</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_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>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="nump">$ 7,901,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_PaymentsToAcquireBusinessesGross', window );">Cash paid in purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,395,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_BusinessCombinationConsiderationTransferredDeferredCashPayment', window );">Deferred cash payment on business acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,144,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_BusinessCombinationContingentConsiderationLiabilityCurrent', window );">Contingent consideration, current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,362,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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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="text">&#160;<span></span>
</td>
<td class="nump">$ 328,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_BusinessCombinationConsiderationTransferredDeferredCashPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, Consideration Transferred, Deferred Cash Payment</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_BusinessCombinationConsiderationTransferredDeferredCashPayment</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_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_BusinessCombinationContingentConsiderationLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, expected to be settled 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 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><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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_EnShapeGmbHMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_EnShapeGmbHMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>131
<FILENAME>R117.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6843245776">
<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, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Apr. 04, 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_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">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 95,280<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">$ 146<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">425<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="nump">129<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">40<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="nump">620<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="num">(98)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses', window );">Accrued expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(716)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="num">(1,008)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">18,333<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="text">&#160;<span></span>
</td>
<td class="nump">23,015<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 | 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="nump">370<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 );">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="nump">$ 4,774<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_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>132
<FILENAME>R118.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6828194240">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - EnShape GmbH Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></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>
<th class="th"><div>Oct. 27, 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_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">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="nump">$ 95,280<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_EnShapeGmbHMember', window );">EnShape GmbH [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">$ 167<span></span>
</td>
</tr>
<tr class="ro">
<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">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_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">79<span></span>
</td>
</tr>
<tr class="ro">
<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,896<span></span>
</td>
</tr>
<tr class="re">
<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">44<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">6,732<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(6)<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_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">(209)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable', window );">Accrued income taxes</a></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,342)<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">7,901<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] | EnShape GmbH [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">447<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember', window );">Completed Technologies [Member] | EnShape GmbH [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">$ 1,089<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_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, Income Tax Payable</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesIncomeTaxPayable</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_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_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_EnShapeGmbHMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_EnShapeGmbHMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<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_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>133
<FILENAME>R119.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6832899504">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - AQSense, S.L. Narrative (Details) - AQSense, S.L. [Member]<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Aug. 30, 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_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_PaymentsToAcquireBusinessesGross', window );">Cash paid in purchase price</a></td>
<td class="nump">$ 2,519<span></span>
</td>
</tr>
<tr class="re">
<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>
</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_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_AQSenseS.L.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_AQSenseS.L.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>134
<FILENAME>R120.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6831136288">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - AQSense, S.L. Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></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>
<th class="th"><div>Aug. 30, 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_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">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="nump">$ 95,280<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_AQSenseS.L.Member', window );">AQSense, S.L. [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_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">$ 168<span></span>
</td>
</tr>
<tr class="ro">
<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,383<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">(14)<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">2,519<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] | AQSense, S.L. [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">598<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] | AQSense, S.L. [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">$ 384<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_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_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_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_AQSenseS.L.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_AQSenseS.L.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_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_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>135
<FILENAME>R121.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825065888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Manatee Works Inc. Narrative (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, 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_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>
</tr>
<tr class="ro">
<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">$ (3)<span></span>
</td>
<td class="num">$ (28)<span></span>
</td>
<td class="num">$ (463)<span></span>
</td>
</tr>
<tr class="re">
<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">$ 1,000<span></span>
</td>
<td class="nump">$ 1,926<span></span>
</td>
<td class="nump">$ 337<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>136
<FILENAME>R122.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827746528">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Manatee Works Inc. Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></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_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>
</tr>
<tr class="ro">
<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">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="nump">$ 95,280<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>137
<FILENAME>R123.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6825132352">
<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. 15, 2019 </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.0500<span></span>
</td>
</tr>
<tr class="re">
<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. 15,  2019<span></span>
</td>
</tr>
<tr class="ro">
<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">Mar.  01,  2019<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>138
<FILENAME>R124.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6843280512">
<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>
<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, 2018 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2016 </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_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">$ 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">$ 182,922<span></span>
</td>
<td class="nump">$ 266,042<span></span>
</td>
<td class="nump">$ 178,080<span></span>
</td>
<td class="nump">$ 139,039<span></span>
</td>
<td class="nump">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
<td class="nump">$ 529,515<span></span>
</td>
</tr>
<tr class="re">
<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">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">138,390<span></span>
</td>
<td class="nump">197,981<span></span>
</td>
<td class="nump">135,916<span></span>
</td>
<td class="nump">106,507<span></span>
</td>
<td class="nump">600,286<span></span>
</td>
<td class="nump">578,794<span></span>
</td>
<td class="nump">398,445<span></span>
</td>
</tr>
<tr class="ro">
<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">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">50,775<span></span>
</td>
<td class="nump">110,849<span></span>
</td>
<td class="nump">60,021<span></span>
</td>
<td class="nump">37,216<span></span>
</td>
<td class="nump">221,142<span></span>
</td>
<td class="nump">258,861<span></span>
</td>
<td class="nump">154,066<span></span>
</td>
</tr>
<tr class="re">
<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 (loss)</a></td>
<td class="text">&#160;<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="num">$ (27,747)<span></span>
</td>
<td class="nump">$ 102,493<span></span>
</td>
<td class="nump">$ 56,495<span></span>
</td>
<td class="nump">$ 45,471<span></span>
</td>
<td class="nump">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
<td class="nump">$ 143,694<span></span>
</td>
</tr>
<tr class="ro">
<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.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="num">$ (0.16)<span></span>
</td>
<td class="nump">$ 0.59<span></span>
</td>
<td class="nump">$ 0.33<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
<td class="nump">$ 1.27<span></span>
</td>
<td class="nump">$ 1.02<span></span>
</td>
<td class="nump">$ 0.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_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.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="num">$ (0.16)<span></span>
</td>
<td class="nump">$ 0.57<span></span>
</td>
<td class="nump">$ 0.32<span></span>
</td>
<td class="nump">$ 0.25<span></span>
</td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 0.98<span></span>
</td>
<td class="nump">$ 0.83<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 not included in calculation of diluted net loss per share (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,145<span></span>
</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,650,164<span></span>
</td>
<td class="nump">3,363,141<span></span>
</td>
<td class="nump">4,391,598<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_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>139
<FILENAME>R125.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.10.0.1</span><table class="report" border="0" cellspacing="2" id="idp6827115680">
<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, 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_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,568<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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,646<span></span>
</td>
<td class="nump">$ 1,568<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,568<span></span>
</td>
<td class="nump">873<span></span>
</td>
<td class="nump">$ 736<span></span>
</td>
</tr>
<tr class="re">
<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">464<span></span>
</td>
<td class="nump">724<span></span>
</td>
<td class="nump">216<span></span>
</td>
</tr>
<tr class="ro">
<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">(343)<span></span>
</td>
<td class="num">(116)<span></span>
</td>
<td class="num">(64)<span></span>
</td>
</tr>
<tr class="re">
<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="num">(43)<span></span>
</td>
<td class="nump">87<span></span>
</td>
<td class="num">(15)<span></span>
</td>
</tr>
<tr class="ro">
<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,646<span></span>
</td>
<td class="nump">1,568<span></span>
</td>
<td class="nump">873<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">5,309<span></span>
</td>
<td class="nump">4,116<span></span>
</td>
<td class="nump">3,259<span></span>
</td>
</tr>
<tr class="ro">
<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">803<span></span>
</td>
<td class="nump">1,193<span></span>
</td>
<td class="nump">857<span></span>
</td>
</tr>
<tr class="re">
<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">$ 6,112<span></span>
</td>
<td class="nump">$ 5,309<span></span>
</td>
<td class="nump">$ 4,116<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>EXCEL
<SEQUENCE>140
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( "V!3DX?(\\#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,$%     @ +8%.3B?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    "  M@4Y.PWB[2.X    K @  $0   &1O8U!R;W!S+V-O
M<F4N>&ULS9+!2L0P$(9?17)O)^G*HJ';B^))07!!\1:2V=U@TX1DI-VW-XV[
M740?P&-F_GSS#4RK@]0^XG/T 2-93%>3ZX<D==BP U&0 $D?T*E4Y\20FSL?
MG:+\C'L(2G^H/4+#^1H<DC**%,S *BQ$UK5&2QU1D8\GO-$+/GS&OL",!NS1
MX4 )1"V =?/$<)SZ%BZ &4887?HNH%F(I?HGMG2 G9)3LDMJ',=Z7)5<WD'
MV]/C2UFWLD,B-6C,OY*5= RX8>?)KZN[^^T#ZQHN;BO>5.)Z*]:2WTC!WV?7
M'WX78>>-W=E_;'P6[%KX=1?=%U!+ P04    "  M@4Y.F5R<(Q &  "<)P
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
M^,$60T$3XO$=GMTT9I,1;#__(+9\X_(W4$L#!!0    ( "V!3DYDQ<KFM $
M -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#$T+GAM;'U3VV[<(!#]%<0'
M!"_KM-'*MI1-5352(ZU2M7UF[?%% <8!O$[^OH"]KMM:?0%FF'/FS#!D(YH7
MVP(X\J:DMCEMG>L/C-FR!27L#?:@_4V-1@GG3=,PVQL0500IR7B2?&!*=)H6
M6?2=3)'AX&2GX62('902YOT($L><[NC5\=PUK0L.5F2]:. ;N._]R7B++2Q5
MIT#;#C4Q4.?T?G<XIB$^!OSH8+2K,PF5G!%?@O%8Y30)@D!"Z0*#\-L%'D#*
M0.1EO,Z<=$D9@.OSE?USK-W7<A86'E#^["K7YO2.D@IJ,4CWC.,7F.NYI60N
M_BM<0/KPH,3G*%':N))RL [5S.*E*/$V[9V.^SC=I%?8-H#/ +X [B* 38FB
M\D_"B2(S.!(S];X7X8EW!^Y[4P9G;$6\\^*M]UX*GNPS=@E$<\QQBN&KF-T2
MP3S[DH)OI3CR?^!\&[[?5+B/\/T?"M-M@G23((T$Z7]+W(JY_2L)6_54@6GB
M-%E2XJ#C)*^\R\#>\_@FO\.G:7\2INFT)6=T_F5C_VM$!UY*<N-'J/4?;#$D
MU"X</_JSF<9L,ASV\P]BRS<N?@%02P,$%     @ +8%.3KZLP=RU 0  T ,
M !D   !X;"]W;W)K<VAE971S+W-H965T,34N>&UL?5/;;MP@$/T5Q <$+[M-
MTI5M*9NJ:J566J5J^\S:8QN%BPMXG?Y]!^RX5F/U!9CAG#,7AGRT[MEW (&\
M:&5\0;L0^B-CONI "W]C>S!XTUBG14#3M<SW#D2=2%HQGF6W3 MI:)DGW]F5
MN1V"D@;.COA!:^%^GT#9L: [^NIXDFT7HH.5>2]:^ ;A>W]V:+%%I98:C)?6
M$ =-01]VQ],AXA/@AX31K\XD5G*Q]CD:G^N"9C$A4%"%J"!PN\(C*!6%,(U?
MLR9=0D;B^ORJ_C'5CK5<A(='JW[*.G0%O:>DAD8,*CS9\1/,];RC9"[^"UQ!
M(3QF@C$JJWQ:237X8/6L@JEH\3+MTJ1]G&[V?*9M$_A,X OA/L5A4Z"4^0<1
M1)D[.Q(W];X7\8EW1XZ]J:(SM2+=8?(>O=?R?9:S:]29(:<)PE>0W8)@*+Y$
MX%L13OP-G6_3]YL)[A-]OZ9GM]L"ATV!0Q(X_*_"MQ">W?T3@ZTZJL&U:98\
MJ>Q@TAROO,NX/J0G9'_ATZQ_%:Z5QI.+#?BNJ?N-M0$PE>P&!ZC#[[48"IH0
MCW=X=M.034:P_?Q_V/*)RS]02P,$%     @ +8%.3K2Q7":T 0  T@,  !D
M  !X;"]W;W)K<VAE971S+W-H965T,38N>&UL?5-ACY0P$/TK37_ %;JHZP9(
M;L\83339G%$_=V& YEJ*;5G.?^^T<(A*_-)VIO/>O)E.\\G8)]<!>/*L5>\*
MVGD_G!AS50=:N#LS0(\WC;%:>#1MR]Q@0=01I!7C2?*::2%[6N;1=[%E;D:O
M9 \72]RHM; _SZ#,5-"4OC@>9=OYX&!E/H@6OH#_.EPL6FQEJ:6&WDG3$PM-
M0>_3TSD+\3'@FX3);<XD5'(UYBD8'^N")D$0**A\8!"XW> !E I$*./'PDG7
ME &X/;^POX^U8RU7X>#!J.^R]EU!CY34T(A1^4<S?8"EGE>4+,5_@ALH# ]*
M,$=EE(LKJ4;GC5Y84(H6S_,N^[A/\TV6+K!] %\ ? 4<8QXV)XK*WPDORMR:
MB=BY]X,(3YR>./:F"L[8BGB'XAUZ;R5/CCF[!:(EYCS'\$U,ND8P9%]3\+T4
M9_X/G._##[L*#Q%^^$/AVWV";)<@BP39?TO<B4F3OY*P34\UV#9.DR.5&?LX
MR1OO.K#W/+[)[_!YVC\+V\K>D:OQ^+*Q_XTQ'E!*<H<CU.$'6PT%C0_'-WBV
M\YC-AC?#\H/8^HW+7U!+ P04    "  M@4Y.&H#9)K4!  #0 P  &0   'AL
M+W=O<FMS:&5E=',O<VAE970Q-RYX;6Q]4V%OVR 0_2N('U!BDG1=9%MJ.DV;
MM$I1IVV?B7VV4<&X@./VW^_ KF>M;K\ =]Q[]^XXTL'81]< >/*L5>LRVGC?
M'1AS10-:N"O308LWE;%:>#1MS5QG0901I!7CF\TUTT*V-$^C[V3SU/1>R19.
MEKA>:V%?CJ#,D-&$OCH>9-WXX&!YVHD:?H+_U9TL6FQF*:6&UDG3$@M51F^3
MPW$7XF/ ;PF#6YQ)J.1LS&,POI<9W01!H*#P@4'@=H$[4"H0H8RGB9/.*0-P
M>7YE_QIKQUK.PL&=47]DZ9N,WE!20B5ZY1_,\ VF>O:43,7_@ LH# ]*,$=A
ME(LK*7KGC9Y84(H6S^,NV[@/X\U^.\'6 7P"\!EP$_.P,5%4_D5XD:?6#,2.
MO>]$>.+DP+$W17#&5L0[%._0>\D_[U-V"3Q3R'$,X8N09(Y@2#YGX&L9COP-
MG*_#MZL"MQ&^7<*3=_+O5@EVD6#W485O0WCROTBVZ*@&6\=9<J0P?1OG>.&=
MQ_66QQ?Y%S[.^KVPM6P=.1N/[QJ[7QGC :5LKG" &OQ>LZ&@\N'X"<]V'++1
M\*:;_@^;/W'^%U!+ P04    "  M@4Y.>RW4C+0!  #2 P  &0   'AL+W=O
M<FMS:&5E=',O<VAE970Q."YX;6Q]4V&/G" 0_2N$'W"LZ+67C9K<7M.T29ML
MKFGO,ZNCD@/' J[7?U] S]K6]@LPP[PW;X8AG] \VP[ D1>M>EO0SKGAR)BM
M.M#"WN  O;]IT&CAO&E:9@<#HHX@K1@_'-XP+61/RSSZSJ;,<71*]G VQ(Y:
M"_/C! JG@B;TU?$HV\X%!ROS0;3P!=S7X6R\Q5:66FKHK<2>&&@*>I\<3UF(
MCP'?)$QV<R:AD@OB<S ^U@4]!$&@H'*!0?CM"@^@5"#R,KXOG'1-&8#;\RO[
M^UB[K^4B+#R@>I*UZPIZ1TD-C1B5>\3I RSUW%*R%/\)KJ!\>%#B<U2H;%Q)
M-5J'>F'Q4K1XF7?9QWV:;V[3!;8/X N KX"[F(?-B:+R=\*),C<X$3/W?A#A
MB9,C][VI@C.V(MYY\=9[KR5/TIQ= ]$2<YIC^"8F62.89U]3\+T4)_X7G._#
MTUV%:82GORG\1_YLER"+!-E_2]R+R?Y(PC8]U6#:.$V65#CV<9(WWG5@[WE\
MDU_A\[1_%J:5O247=/YE8_\;1 =>RN'&CU#G/]AJ*&A<.+[U9S./V6PX')8?
MQ-9O7/X$4$L#!!0    ( "V!3DX>F9R,M0$  -(#   9    >&PO=V]R:W-H
M965T<R]S:&5E=#$Y+GAM;'U3VV[<(!#]%<0'A#7>7+2R+6535:W42*M$;9]9
M>WQ1N+B U\G?9\".Z[967X 9YIPY,PS9:.R+:P$\>552NYRVWO<'QES9@A+N
MRO2@\:8V5@F/IFV8ZRV(*H*49'RWNV%*=)H66?2=;)&9P<M.P\D2-R@E[-L1
MI!ESFM /QU/7M#XX6)'UHH%G\-_[DT6++2Q5IT"[SFABH<[I?7(X[D-\#/C1
MP>A69Q(J.1OS$HRO54YW01!(*'U@$+A=X &D#$0HX]?,29>4 ;@^?[!_CK5C
M+6?AX,'(GUWEVYS>45)!+0;IG\SX!>9ZKBF9B_\&%Y 8'I1@CM)(%U=2#LX;
M-;.@%"5>I[W3<1^GFS2=8=L /@/X KB+>=B4*"K_)+PH,FM&8J?>]R(\<7+@
MV)LR.&,KXAV*=^B]%#RYSM@E$,TQQRF&KV*2)8(A^Y*";Z4X\G_@?!N>;BI,
M(SS]0^'--L%^DV ?"?;_+7$KYO:O)&S54P6VB=/D2&D&'2=YY5T&]I['-_D=
M/DW[H[!-IQTY&X\O&_M?&^,!I>RN<(1:_&"+(:'VX7B+9SN-V61XT\\_B"W?
MN'@'4$L#!!0    ( "V!3DZP7YV(M@$  -(#   9    >&PO=V]R:W-H965T
M<R]S:&5E=#(P+GAM;'U3VV[4,!#]%<L?4"?>+2RK)%*W"($$TJJ(\NQ-)A?5
MEV [F_+WC)TT!!KUQ?:,YYPY,QYGH[%/K@7PY%E)[7+:>M\?&7-E"TJX&].#
MQIO:6"4\FK9AKK<@J@A2DO$D><>4Z#0MLN@[VR(S@Y>=AK,E;E!*V-\GD&;,
M:4I?' ]=T_K@8$76BP:^@__1GRU:;&&I.@7:=483"W5.[]+C:1_B8\!C!Z-;
MG4FHY&+,4S"^5#E-@B"04/K ('"[PCU(&8A0QJ^9DRXI W!]?F'_%&O'6B["
MP;V1/[O*MSD]4%)!+0;I'\SX&>9Z;BF9B_\*5Y 8'I1@CM)(%U=2#LX;-;.@
M%"6>I[W3<1^GFUL^P[8!? ;P!7"(>=B4*"K_*+PH,FM&8J?>]R(\<7KDV)LR
M.&,KXAV*=^B]%CP]9.P:B.:8TQ3#5S'I$L&0?4G!MU*<^"LXWX;O-A7N(GSW
MC\(/VP3[38)])-B_6>)&#$_^2\)6/55@FSA-CI1FT'&25]YE8._B([*_X=.T
M?Q.VZ;0C%^/Q96/_:V,\H)3D!D>HQ0^V&!)J'X[O\6RG,9L,;_KY!['E&Q=_
M %!+ P04    "  M@4Y. LK:.[,!  #2 P  &0   'AL+W=O<FMS:&5E=',O
M<VAE970R,2YX;6Q]4V%OVR 0_2N('U 2DK559%MJ.DV;M$E1JVV?B7VV48%S
M <?=OR]@U_4V;U^ .^Z]>W<<V8#VR;4 GKQH95Q.6^^[ V.N;$$+=X4=F'!3
MH]7"!],VS'461)5 6C&^V5PS+:2A199\)UMDV'LE#9PL<;W6POXZ@L(AIUOZ
MYGB03>NC@Q59)QIX!/^].]E@L9FEDAJ,DVB(A3JG=]O#<1_C4\ /"8-;G$FL
MY(SX%(TO54XW41 H*'UD$&&[P#TH%8F"C.>)D\XI(W!Y?F/_E&H/M9R%@WM4
M/V7EVYS>4E)!+7KE'W#X#%,]'RB9BO\*%U A/"H).4I4+JVD[)U'/;$$*5J\
MC+LT:1_&&WXSP=8!? +P&7";\K Q45+^47A19!8'8L?>=R(^\?; 0V_*Z$RM
M2'=!O O>2\'Y-F.72#3%',<8OHAYCV"!?4[!UU(<^5]PO@[?K2K<)?CN-X7_
M(-BO$NP3P?Z_):[%[/Y(PA8]U6";-$V.E-B;-,D+[SRP=SR]R7OX..W?A&VD
M<>2,/KQLZG^-Z"%(V5R%$6K#!YL-!;6/QYMPMN.8C8;';OI!;/[&Q2M02P,$
M%     @ +8%.3E,(R@NU 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T
M,C(N>&UL?5-A;]L@$/TKB!]0$N)F461;:CI-J[1*4:>MGXE]ME'!N(#C]M_O
MP*[G;=:^ '?<>_?N.-+!V!?7 'CRIE7K,MIXWQT9<T4#6K@;TT&+-Y6Q6G@T
M;<U<9T&4$:05XYO-GFDA6YJGT7>V>6IZKV0+9TM<K[6P[R=09LCHEGXXGF3=
M^.!@>=J)&KZ#_]&=+5IL9BFEAM9)TQ(+54;OML=3$N)CP$\)@UN<2:CD8LQ+
M,![*C&Z"(%!0^, @<+O"/2@5B%#&Z\1)YY0!N#Q_L'^)M6,M%^'@WJAG6?HF
MHP=*2JA$K_R3&;["5,\M)5/QW^ *"L.#$LQ1&.7B2HK>>:,G%I2BQ=NXRS;N
MPWBS/TRP=0"? 'P&'&(>-B:*RC\++_+4FH'8L?>="$^\/7+L31&<L17Q#L4[
M]%YSSI.470/1%',:8_@B9CM',&2?4_"U%"?^#YROPW>K"G<1OOM#X>TZ0;)*
MD$2"Y+\EKL7L_TK"%CW58.LX38X4IF_C)"^\\\#>\?@FO\/':7\4MI:M(Q?C
M\65C_RMC/*"4S0V.4(,?;#845#X</^'9CF,V&MYTTP]B\S?.?P%02P,$%
M  @ +8%.3BXG+XFU 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,C,N
M>&UL?5-A;]L@$/TKB!]0$N(M661;:CI-G;1)4:>UGXE]ME'!YP*.NW\_P*[K
M;=:^ '?<>_?N.-(!S;-M !QYU:JU&6V<ZXZ,V:(!+>P-=M#ZFPJ-%LZ;IF:V
M,R#*"-**\<WF(]-"MC1/H^]L\A1[IV0+9T-LK[4POTZ@<,CHEKXY'F3=N.!@
M>=J)&GZ ^]F=C;?8S%)*#:V5V!(#549OM\=3$N)CP*.$P2[.)%1R07P.QM<R
MHYL@"!04+C (OUWA#I0*1%[&R\1)YY0!N#R_L7^)M?M:+L+"':HG6;HFHP=*
M2JA$K]P##O<PU?.!DJGX;W %Y<.#$I^C0&7C2HK>.M03BY>BQ>NXRS;NPWB3
M["?8.H!/ #X##C$/&Q-%Y9^%$WEJ<"!F['TGPA-OC]SWI@C.V(IXY\5;[[WF
MG.]3=@U$4\QIC.&+F.T<P3S[G(*OI3CQ?^!\';Y;5;B+\-T?"@_K!,DJ01()
MDO^6N!;SZ:\D;-%3#::.TV1)@7T;)WGAG0?VEL<W>0\?I_V[,+5L+;F@\R\;
M^U\A.O!2-C=^A!K_P69#0>7"<>_/9ARST7#833^(S=\X_PU02P,$%     @
M+8%.3G!&(#6V 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,C0N>&UL
M=5-A;]P@#/TKB!]0$G+;JE,2J==IVJ1-.G7:]IE+G 050@;DTOW[&9*F:9=]
M 6S\GI^-R2=C'UT'X,F35KTK:.?]<&3,51UHX6[, #W>-,9JX=&T+7.#!5%'
MD%:,)\E[IH7L:9E'W]F6N1F]DCV<+7&CUL+^.8$R4T%3^NQXD&WG@X.5^2!:
M^ [^QW"V:+&5I98:>B=-3RPT!;U+CZ=#B(\!/R5,;G,FH9*+,8_!^%(7- F"
M0$'E X/ [0KWH%0@0AF_%TZZI@S [?F9_5.L'6NY" ?W1OV2M>\*>DM)#8T8
ME7\PTV=8ZGE'R5+\5[B"PO"@!'-41KFXDFITWNB%!:5H\33OLH_[--_P=('M
M _@"X"O@-N9A<Z*H_*/PHLRMF8B=>S^(\,3ID6-OJN",K8AW*-ZA]UKR+,G9
M-1 M,:<YAF]BTC6"(?N:@N^E./%_X'P?GNTJS"(\>Z7P/_D/NP2'2'!X1<#?
ME+@7D[U)PC8]U6#;.$V.5&;LXR1OO.O WO'X)B_A\[1_$[:5O2,7X_%E8_\;
M8SR@E.0&1ZC##[8:"AH?CA_P;.<QFPUOAN4'L?4;EW\!4$L#!!0    ( "V!
M3DY0(N&;M0$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#(U+GAM;'U3
MVX[<( S]%<0'+#-,]J)1$FEGJZJ56FFT5=MG)G$2M%Q2()/MW]>0;)JV45\
M&Y_C8V/RT;H7WP$$\JJ5\07M0NB/C/FJ RW\C>W!X$UCG18!3=<RWSL0=0)I
MQ?AN=\>TD(:6>?*=79G;(2AIX.R('[06[N<)E!T+NJ=OCF?9=B$Z6)GWHH4O
M$+[V9X<66UAJJ<%X:0UQT!3T<7\\93$^!7R3,/K5F<1*+M:^1.-C7=!=% 0*
MJA 9!&Y7> *E(A'*^#%STB5E!*[/;^SO4^U8RT5X>++JNZQ#5] '2FIHQ*#"
MLQT_P%S/+25S\9_@"@K#HQ+,45GETTJJP0>K9Q:4HL7KM$N3]G&ZN<]FV#:
MSP"^ !Y2'C8E2LK?B2#*W-F1N*GWO8A/O#]R[$T5G:D5Z0[%>_1>2W[(<G:-
M1'/,:8KAJYC]$L&0?4G!MU*<^#]PO@T_;"H\)/CA#X6WVP39)D&6"++_EK@5
M<_=7$K;JJ0;7IFGRI+*#29.\\BX#^\C3F_P.GZ;]LW"M-)Y<;,"73?UOK V
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
MGNTX9J/A33?](#9_X_P#4$L#!!0    ( "V!3D[T&#DAM $  -(#   9
M>&PO=V]R:W-H965T<R]S:&5E=#,P+GAM;'U3[8Z<(!1]%<(#+ ZC[7:B)CO;
M-&W2)I-MVOYF]*IDP6L!Q^W;%]"UIC7] ]S+.>=^<,DG-,^V W#D1:O>%K1S
M;C@Q9JL.M+!W.$#O;QHT6CAOFI;9P8"H(TDKQI/D#=-"]K3,H^]BRAQ'IV0/
M%T/LJ+4PO\Z@<"KH@;XZGF3;N>!@93Z(%KZ"^S9<C+?8JE)+#;V5V!,#34$?
M#J=S&O 1\%W"9#=G$BJY(CX'XU-=T"0D! HJ%Q2$WV[P"$H%(9_&ST63KB$#
M<7M^5?\0:_>U7(6%1U0_9.VZ@MY34D,C1N6></H(2ST9)4OQG^$&RL-#)CY&
MA<K&E52C=:@7%9^*%B_S+ONX3_--EBVT?0)?"'PEW,<X; X4,W\OG"AS@Q,Q
M<^\'$9[X<.*^-U5PQE;$.Y^\]=Y;R=-W.;L%H05SGC%\@SFL".;5UQ!\+\29
M_T/G^_3C;H;'2#]NZ5FR+Y#N"J11(/UOB3N8[.\BV::G&DP;I\F2"L<^3O+&
MNP[L X]O\@<^3_L785K96W)%YU\V]K]!=.!32>[\"'7^@ZV&@L:%XUM_-O.8
MS8;#8?E!;/W&Y6]02P,$%     @ +8%.3L]9[1&T 0  T@,  !D   !X;"]W
M;W)K<VAE971S+W-H965T,S$N>&UL?5/;;MP@$/T5Q >$7>RDT<JVE$U4)5(K
MK5*U?6;M\47AX@!>IW_? 3NNVUIY 6:8<^;,,&2CL2^N!?#D34GM<MIZWQ\8
M<V4+2K@KTX/&F]I8)3R:MF&NMR"J"%*2\=WNABG1:5IDT7>R168&+SL-)TO<
MH)2POXX@S9C3/7UW/'=-ZX.#%5DO&O@&_GM_LFBQA:7J%&C7&4TLU#F]VQ^.
M:8B/ 3\Z&-WJ3$(E9V->@O%4Y707!(&$T@<&@=L%[D'*0(0R7F=.NJ0,P/7Y
MG?USK!UK.0L']T;^["K?YO26D@IJ,4C_;,9'F.NYIF0N_@M<0&)X4((Y2B-=
M7$DY.&_4S()2E'B;]D['?9QNDF2&;0/X#. +X#;F85.BJ/Q!>%%DUHS$3KWO
M17CB_8%C;\K@C*V(=RC>H?=2\&N>L4L@FF..4PQ?Q>R7"(;L2PJ^E>+(_X/S
M;7BRJ3")\.0OA<DV0;I)D$:"],,2MV+2?Y*P54\5V"9.DR.E&72<Y)5W&=@[
M'M_D3_@T[5^%;3KMR-EX?-G8_]H8#RAE=X4CU.('6PP)M0_'3WBVTYA-AC?]
M_(/8\HV+WU!+ P04    "  M@4Y..K[_H+8!  #2 P  &0   'AL+W=O<FMS
M:&5E=',O<VAE970S,BYX;6Q]4]MNVS ,_15!'U E2M)V@6V@Z3!LP 8$'=8]
M*S9M"]7%D^2X^_M1LNMYF[$72:1X#@\I*ANL>_$M0""O6AF?TS:$[LB8+UO0
MPM_8#@S>U-9I$=!T#?.= U$ED%:,;S:W3 MI:)$EW]D5F>V#D@;.COA>:^%^
MGD#9(:=;^N9XDDT;HH,562<:^ KA6W=V:+&9I9(:C)?6$ =U3A^VQ],^QJ>
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
M;'^+Z,"GDMSX">K]_UH-":T+QP_^;.8IFPV'P_*!V/J+JW]02P,$%     @
M+8%.3FSOR:ZX 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,SDN>&UL
M;5/;;IPP$/T5RQ\0@R'-=@5(V415*[72*E7;9R\,8,47:ILE_?O:AE":\&)[
MQN><N7A<3-H\VQ[ H1<IE"UQ[]QP),36/4AF;_0 RM^TVDCFO&DZ8@<#K(DD
M*0A-D@]$,JYP543?V52%'IW@"LX&V5%*9OZ<0.BIQ"E^=3SQKG?!0:IB8!U\
M!_=C.!MOD56EX1*4Y5HA VV)[]/C*0_X"/C)8;*;,PJ57+1^#L:7IL1)2 @$
MU"XH,+]=X0&$"$(^C=^+)EY#!N+V_*K^*=;N:[DP"P]:_.*-ZTM\P*B!EHW"
M/>GI,RSUW&*T%/\5KB \/&3B8]1:V+BB>K1.RT7%IR+9R[QS%?=IOLG3A;9/
MH N!KH1#C$/F0#'S1^9851@](3/W?F#AB=,C];VI@S.V(M[YY*WW7JLLO2O(
M-0@MF-.,H1M,NB*(5U]#T+T0)_J.3O?IV6Z&6:1G6WKR<5\@WQ7(HT#^G\#A
M38GO,5EZ>!.$;'HJP71QFBRJ]:CB)&^\Z\#>T_@F_^#SM']CIN/*HHMV_F5C
M_UNM'?A4DAL_0KW_8*LAH'7A>.?/9AZSV7!Z6'X06;]Q]1=02P,$%     @
M+8%.3L]%^T"V 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T-# N>&UL
M=5/;;IPP$/T5RQ\0@]FTZ0J0LJFJ5FJE5:JFSUX8P(K-4-LLZ=_7-H2BE+[8
MGO$Y9RX>YQ.:9]L!./*B56\+VCDW'!FS50=:V!L<H/<W#1HMG#=-R^Q@0-21
MI!7C2?*.:2%[6N;1=S9ECJ-3LH>S(7;46IC?)U X%32EKXY'V78N.%B9#Z*%
M[^!^#&?C+;:JU%)#;R7VQ$!3T/OT>#H$? 0\29CLYDQ")1?$YV!\J0N:A(1
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
M>2N,'#U:TZ/8+[#W"NR=P/Z?%I--BSY,ZC>)O2:Q1^!^8^+#?/*;)%Z3Y*-
M$FQ,?)C__*[4:Y)Z!,*-B0\3;4S(Z@ARD(V[? J5XM*[B[_*+O?[(71'^"]\
M>AR^4=ETO4)GH<U%<,>U%D*#*26X,[O:FO=H"1C4VDY3,Y?3K9P"+8;YP2'+
MJU?\ 5!+ P04    "  M@4Y.!X.[--L!   !!0  &0   'AL+W=O<FMS:&5E
M=',O<VAE970T-RYX;6QU5.N.G" 4?A7" RSJ.+J=J,G.-DV;M,EDF[:_&3U>
MLB 6<-R^?0$=:RW](YS#=SD'@6P2\E6U !J]<=:K'+=:#R="5-D"I^I!#-";
ME5I(3K4)94/4((%6CL09B8(@(9QV/2XRE[O((A.C9ET/%XG4R#F5O\[ Q)3C
M$-\3+UW3:IL@13;0!KZ"_C9<I(G(JE)U''K5B1Y)J'/\%)[.J<4[P/<.)K69
M(]O)58A7&WRJ<AS8@H!!J:T"-<,-GH$Q*V3*^+EHXM72$K?SN_H'U[OIY4H5
M/ OVHZMTF^-'C"JHZ<CTBY@^PM+/$:.E^<]P V;@MA+C40JFW!>5H]*"+RJF
M%$[?YK'KW3@M^G>:GQ MA&A'(+.1J_P]U;3(I)B0G/=^H/87AZ?([$UIDVXK
MW)HI7IGLK3@D<49N5FC!G&=,M,&$*X(8]=4B\EF<HW_HD9]^\%9X</3#EA[_
MQS_V"L1.(/ZKQ>.N11\F\9L<O29'CT"Z,_%A'OTFB=<D\0B\VYEX,&G@-TF]
M)JE'(-R9^##[GTHV1Y"#;-SE4Z@48^\N_B:[WN^GR!WA/_#Y<?A"9=/U"EV%
M-A?!'==:" VFE.#![&IKWJ,U8%!K.TW-7,ZW<@ZT&)8'AZRO7O$;4$L#!!0
M   ( "V!3DZIU*D7MP$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#0X
M+GAM;&U3VVZ<,!#]%<L?$.\":9(5(&535:W42*M4;9^],( 57ZAMEN3O,S:$
MTI07VS,^Y\S%XWPT]MEU )Z\**E=03OO^P-CKNI <7=E>M!XTQBKN$?3MLSU
M%G@=24JR9+?[Q!07FI9Y])ULF9O!2Z'A9(D;E.+V]0C2C 7=TW?'DV@['QRL
MS'O>P@_P/_N318LM*K50H)TPFEAH"GJ_/QRS@(^ 7P)&MSJ34,G9F.=@?*L+
MN@L)@83*!P6.VP4>0,H@A&G\F37I$C(0U^=W]2^Q=JSES!T\&/E;U+XKZ"TE
M-31\D/[)C%]AKN>:DKGX[W !B?"0"<:HC'1Q)=7@O%&S"J:B^,NT"QWW<;I)
M[V;:-B&9"<E"N(UQV!0H9OZ9>U[FUHS$3KWO>7CB_2'!WE3!&5L1[S!YA]Y+
MF=ZD.;L$H1ESG##)"K-?$ S5EQ#)5HAC\A\]V::GFQFFD9ZNZ5FV+9!M"F11
M(/NGQ.Q#B5N8ZP]!V*JG"FP;I\F1R@PZ3O+*NPSL?1+?Y"]\FO9';ENA'3D;
MCR\;^]\8XP%3V5WA"'7XP19#0N/#\0;/=AJSR?"FGW\06[YQ^0902P,$%
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
M3RLI#5@IT8UM>6,?HL7@4!FWW=F]FL9Q,HSLYY>&+,]=_A=02P,$%     @
M+8%.3A9>)E_= 0  ^@0  !D   !X;"]W;W)K<VAE971S+W-H965T-38N>&UL
MC53;;MP@$/T5Q <$7W:][LJVE$U5M5(KK5(U?6;M\44!XP)>IW]?P%[72:F4
M%\,,9\Z<&3-DDY#/J@70Z(6S7N6XU7HX$J+*%CA5=V* WIS40G*JC2D;H@8)
MM')!G)$H"!+":=?C(G.^LRPR,6K6]7"62(V<4_G[!$Q,.0[QS?'8-:VV#E)D
M VW@.^@?PUD:BZPL5<>A5YWHD80ZQ_?A\91:O ,\=3"IS1[92BY"/%OC2Y7C
MP H"!J6V#-0L5W@ QBR1D?%KX<1K2ANXW=_8/[G:32T7JN!!L)]=I=L<IQA5
M4-.1Z4<Q?8:EGCU&2_%?X0K,P*T2DZ,43+DO*D>E!5]8C!1.7^:UZ]TZ+?RW
M,'] M 1$:T"8N%KF1$[Y1ZIID4DQ(3GW?J#V%X?'R/2FM$[7"G=FQ"OCO1:[
MZ)"1JR5:,*<9$VTPX8H@AGU-$?E2G*)_PB-_>.Q5&+OPW2N%_R'8>0EVCB!^
M19#Z"?9>@KU'P8<W/?)@XL"?)/$F23Q)$C_!P4MP>'^9J9<@?4>9'DS\]C*0
MS=WC(!LW=0J58NS=Q&^\ZV#?1^[N_H7/K\(W*INN5^@BM)D =T]K(308*<&=
M:7EK'J+58%!KNSV8O9S'<3:T&):7AJS/7?$'4$L#!!0    ( "V!3DYE6F$P
M\ $  .8$   9    >&PO=V]R:W-H965T<R]S:&5E=#4W+GAM;'U4VVZC,!#]
M%<0'U 0(W4: U"1:=:5=*>IJN\\.#!?5QM0VH?OWZULH):@OV#,^Y\P%C].1
M\5?1 $COG9).9'XC9;]#2!0-4"SN6 ^=.JD8IU@JD]=(]!QP:4B4H# ($D1Q
MV_EY:GPGGJ=LD*3MX,0],5"*^;\]$#9F_L:_.I[;NI':@?*TQS7\!OFG/W%E
MH4FE;"ETHF6=QZ'*_,?-[AAKO &\M#"*V=[3E9P9>]7&CS+S YT0$"BD5L!J
MN< !"-%"*HTWI^E/(35QOK^J?S>UJUK.6,"!D;]M*9O,_^9[)51X(/*9C4_@
MZMGZGBO^)UR *+C.1,4H&!'FZQ6#D(PZ%94*Q>]V;3NSCD[_2ELGA(X03H1-
M\B4A<H3H@Q!_28@=(5X0D"W%].:()<Y3SD:/V[_;8WV)-KM8=;_03M-L<Z;:
M(Y3WDL=1F**+%G*8O<6$,\QF0B"E/H4(UT+LPQOZ(L#A%A%M/T..*Y!D/8EH
MM<[(\*-Y#0_;=8%X52 V O&G1D6+1EE,8C"=#9(D:@2#1;UKN/N'&]QQ%1?/
M<39Q-/O;%'AM)DEX!1LZJ9LV\T[#^ACJV[+P[]40VYG[D+$OP"_,Z[83WIE)
M=1?-C:D8DZ#2#.[46#7JT9D, I74VWNUYW;TK"%9[UX5-#UM^7]02P,$%
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
MI:DS_&"F]""3[>4BDSM=GT[,>=ENU]L+K8[=IXC@\CUD^1=02P,$%     @
M+8%.3E.B)![) @  M0H  !D   !X;"]W;W)K<VAE971S+W-H965T-C$N>&UL
ME59=C]HP$/PK4=Y[L9TO. $2I*I:J95.5[5]]H&!Z)(XM0U<_WUM)^2"O:G*
M"XF=V9G=)>/LXL+%JSPRIH*WNFKD,CPJU3Y&D=P>64WE V]9HY_LN:BITDMQ
MB&0K&-W9H+J*"$)95-.R"5<+N_<D5@M^4E79L"<1R%-=4_%GPRI^688XO&X\
MEX>C,AO1:M'2 _O.U(_V2>A5-+#LRIHULN1-(-A^&:[Q8T%L@$7\+-E%CNX#
M4\H+YZ]F\66W#)')B%5LJPP%U9<S*UA5&2:=Q^^>-!PT3>#X_LK^R1:OBWFA
MDA6\^E7NU'$9SL)@Q_;T5*EG?OG,^H+2,.BK_\K.K-)PDXG6V/)*VM]@>Y**
MUSV+3J6F;]VU;.SUTO-?P^  T@>0(0!G_PR(^X#X/2"QQ7>9V5(_4D57"\$O
M@>C^K9::EP(_QKJ96[-I>V>?Z6JEWCVODBQ=1&=#U&,V'8:,,'A 1)I]D""0
MQ(9XX>16H/ 1<0HKQ& 1L8V/;XK(8(($)$@L07)#D#M=Z#"9Q31]DJD#*GQ0
M@O,83B4%4TF!5&:.2H=)QZG,88T,U,@ C;E3;N9I?, ((5@F!V5R7R9'CDSN
MR9 T39QZ?=!-ZV]2F8&IS(!4)E[B.4@P__]7#"/8:<C+ :>.U8H>=-OV!$VD
MBB<\C8%JR00%Z-DU)G?4"YL2QT 6L7NTQ$"]<8K<M@"PF$R<$1CV./9-#O0_
M\87222'8P1BP<)Y,4, &Q=D=[8?-AR'W>>T'[#=S3V< A*<Z KL/0_:;HH#]
MA^\P(($-2'P#^D<K\0V(R7SB="6P_PCD/[?U/6C\J<#(_?06 &K\!W791*./
M?<W$P<Y%,MCR4Z/,9W6T.\Q>:V*&!6=_HV>R;H)ZI^D&NF]4',I&!B]<Z5'$
M#@Q[SA73.:('W:RCGB&'1<7VRMSF^EYT@U2W4+SMA\1HF%17?P%02P,$%
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
M1TF%DQB8Q( D:I+$1$GNI#0&I[$PC05I]"2-C=)8GRGJPW4PCXOS^!0'\#"
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
M(]W+0U>?QN/J^'IFOOX?4$L#!!0    ( "V!3DY'P']DB@0  %X:   9
M>&PO=V]R:W-H965T<R]S:&5E=#8V+GAM;)79[8ZC-A0&X%N)N( %V\?&C))(
MG:U6K=1*HZW:_F829Q(MA"PPD^W=EZ^),CZO$?MG$H@Y+V9X9!O6UZK^UAR=
M:U<_RN+<;*)CVUX>XKC9'5V9-Y^JBSMWOQRJNLS;;K-^B9M+[?+]<%!9Q#))
M3%SFIW.T70_[GNKMNGIMB]/9/=6KYK4L\_J_1U=4UTTDHO<=7T\OQ[;?$6_7
ME_S%_>7:OR]/=;<5WZKL3Z4[-Z?JO*K=81/](AX>C>H/&%K\<W+7YN[[JN_*
M<U5]ZS=^WV^BI#\C5[A=VY?(NX\W]]D515^I.X_O4]'HEMD?>/_]O?J7H?-=
M9Y[SQGVNBG]/^_:XB6RTVKM#_EJT7ZOK;V[JD(Y64^__<&^NZ)KW9])E[*JB
M&?ZN=J]-6Y53E>Y4ROS'^'DZ#Y_7J?[[8?@ .1T@;P?(L2]CT'#FO^9MOEW7
MU755CQ?_DO?_8_$@NVNSZW<.EV+XK3OYIMO[MM5"K>.WOM#4YG%L(^_:")O>
MVL1=_5N(A"%R**#N"E!J<0$%"ZBA 'TX2_+.<FQCAC;G,42FBFR2)#B*8!2!
M*.U%C6WT792@3"=I,$K#* VBC!>E690AD5(PR< D Y)2+\FP)&4RJX-)*4Q*
M09+UDE*6E&J2P2 +@RP(RKP@R[MDE0@&93 H8T&4^?=>QO]+-E,V?$.(!&M,
M>)@5@1(!T&(Y-H&Y"KF V]3H P*5VC1\>06V+1!N7]S4Z#[-BDS.A&'= O'V
MS0GN6QO263@,^Q8(N,].<.']F)J$PS!Q@8S[\@1'3D*:<!9&+I!R'Y_@S$,I
M6+C@Q+D\ 8PG":D9>IBY ,YMH(3$>F6RG)[$>J580&]J](%>9BD-]UD&QF4$
MW:<G.70ETYD;5&+G$CGWZ4GN/)2"@4L$W#<G.?!0"I8MD6P?F^2R0RF8M$2D
M?6:2DPZE8,R28^;,),<LE9 SS"1&+0%J*P,EL%29_<1T$DM5?)P%$\J$SU,L
MS<SR%#:MD&E?F>*F.V0F//U2F+1"I'UEBI-.4S&3%9B5(]&^-<5%BV[8#L]@
M%8:M$&R?G.*P%8GP^*8P;X5X^_ 4YST[NU08N>+(.3_%D0LE$Q5>W"B,70'L
M5@5*8,'*_@0_+%CQL1;PXY-J*Y+P]25,G1!UMJ#CU(V:N6\(2R<DW<='7'HH
M!1,G1-QG1YQX* 7C)H3;]T:+AVL*K+:1:E\:+1ZN"7LF[ID;(^Y94+?6#M\$
M&#0!T%8'2F"EE"XG1E@IH?4QZS*?/(?ZBB$3@LQP<<BAQR28L$:$V8,23CB4
M@O%JA-=GI3E>/;<,U9BP1H1]7'HQ88T):T38QZ47$]:8L.:$.2X-EM2SURWP
MQ Q MA0H@7EJL]R6QCPU6OZR'O,9,U$6?LJEL6.-'/O"-'=L*3R=TQBS1I@9
ML\68#<9L$&;V+'(Q9H,Q&X39!V86C\0&,S:(L0_,+&9L,&/#&7-@AC_^U@HM
MS^*[-P/]FY<_\_KE=&Y6SU7;5N7P*N!05:WKBB:?NI,^NGQ_VRC<H>V_IMWW
M>GSC,6ZTU65ZFQ/?7BEM_P=02P,$%     @ +8%.3G<T, L" @  > 4  !D
M  !X;"]W;W)K<VAE971S+W-H965T-C<N>&UL?93M;ILP&(5O!7$!-=A 2$20
MEDS5)FU2U&G=;R=Y$U -IK83NKN?/PBB8.U/_'7>X^<XQD7/Q9NL %3PT;!6
M;L-*J6Z#D#Q5T%#YQ#MH]<J%BX8J/117)#L!]&R+&H9P%&6HH74;EH6=.XBR
MX#?%ZA8.(I"WIJ'B[PX8[[=A'#XF7NIKI<P$*HN.7N$7J-_=0>@1&EW.=0.M
MK'D;"+ALPR_Q9I\9O16\UM#+23\P28Z<OYG!]_,VC P0,#@IXT!U<X<],&:,
M-,;[X!F.6YK":?_A_FRSZRQ'*F'/V9_ZK*IMF(?!&2[TQM0+[[_!D"<-@R'\
M#[@#TW)#HO<X<2;M;W"Z2<6;P46C-/3#M75KV]ZM9(\R?P$>"O!8$"?_+2!#
M 9D5($=FHWZEBI:%X'T@W)_547,GX@W1AWDRD_;L[)I.*_7LO4QQ5*"[,1HT
M.Z?!$PW^K-@O%20=)4@#C!382X%M/9GN$&5^ ^(U(-8@^10CGL5PFLQJ6JM)
M\(KDLRA+%2%KO/+#)%Z8Q ,S.[&=TZ33;9+)F3F6I0C'<>)'2;THJ0>%S%#2
M)<HJCM8S%H\JSG/LA\F\,-D"9CV_:MGB]'."\_EU6ZJRU7J2R[&@R3=@WJ2?
M5%SK5@9'KO3G9"_]A7,%VC%ZTL$J_0R. P879;HKW1?N,7 #Q;OAG4/C8UO^
M U!+ P04    "  M@4Y.0J]@(O$"  "$#   &0   'AL+W=O<FMS:&5E=',O
M<VAE970V."YX;6R55UUOFS 4_2N(]Q5_8 Q5$FG--&W2)E6=NCV[B9.@ L[
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
MFI6BW"J":)8@E<"<A6_-PC?QP9* L=T@L!H$QB R!MUHX.%L5<<HBI>BQ'N
M":V8T(+QO17&(L+I@^.(K)C(AL$KC$V$$SLFMF)B&V;]\K<B'&</#BVQ8A(;
M)EAAMJ(LS>R4U$I)C4'XST5>0](-) H\.R2S0K(M)$Q6D&QSR["'\2J5TJ(*
M\*9BM/B,=5O]1OBEZ81S9%)U!//=5HQ)4([>DZJK5IU\7E"HI)XF:L['?C8N
M).NG5HWF_XOB+U!+ P04    "  M@4Y.3OR>^%<"  "I!P  &0   'AL+W=O
M<FMS:&5E=',O<VAE970W,RYX;6Q]E=N.FS 0AE\%\0 +/G"*"%)#5;52*T5;
M=7OM)$Z"%C"UG;!]^]J&H,1V>A,?^.>?;PSQE"/C[^),J0P^NK87Z_ LY;"*
M(K$_TXZ(%S;07CTY,MX1J9;\%(F!4W(P05T;P3A.HXXT?5B59F_+JY)=9-OT
M=,L#<>DZPO]N:,O&=0C"V\9K<SI+O1%5Y4!.]">5OX8M5ZMH<3DT'>U%P_J
MT^,Z_ 16-8AU@%&\-704=_- E[)C[%TOOAW68:R):$OW4EL0-5QI3=M6.RF.
M/[-IN.34@??SF_L74[PJ9D<$K5G[NSG(\SK,P^! C^32RE<V?J5S04D8S-5_
MIU?:*KDF43GVK!7F-]A?A&3=[*)0.O(QC4UOQG'VOX7Y ^ < )< @/\;@.8
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
M9::IGHNQ_XV!XOW4V\G\!U/\ U!+ P04    "  M@4Y.#%!4 Q("  !M!@
M&0   'AL+W=O<FMS:&5E=',O<VAE970X,BYX;6R%E=N.FS 0AE\%\0!K#H&D
M$4%JLEJU4BM%6[6]=F (:&U,;2=LW[ZV(8@8;WH3'_CGGV_&X&0]XV^B!I#>
M.R6MV/FUE-T6(5'40+%X8AVTZDG%.,52+?D9B8X#+DT0)2@*@A11W+1^GIF]
M(\\S=I&D:>'(/7&A%/._>R"LW_FA?]MX;<ZUU!LHSSI\AA\@?W9'KE9H<BD;
M"JUH6.MQJ';^YW![V&B]$?QJH!>SN:<K.3'VIA=?RYT?:" @4$CM@-5PA0,0
MHHT4QI_1TY]2ZL#Y_.;^8FI7M9RP@ ,COYM2UCM_XWLE5/A"Y"OKO\!83^)[
M8_'?X I$R36)RE$P(LRO5UR$9'1T42@4OP]CTYJQ'_UO8>Z : R(IH!P]3 @
M'@-B*P -9*;49RQQGG'6>WPXK [K=R+<QJJ9A=XTO3//5+5"[5[S-/R4H:LV
M&C7[01/---&]XK!4Q,DD00I@HHB<%)&)C^<9H@\,8J=!; Q6\S*BP"ICT*1&
MTQI-:)7A4*1NBI638N6@L'+L!TTRRV%Q'AXI[B 2)T2RA @3"R)9I+!;X5!\
MT(K429$Z6F&]-?MTF2-(+0Z')G9SK)T<:P=';'&L_WLDCQ1W$!LGQ,9Q)%:A
M^\WRW5LTPZ&QFX%F'[Z^B+]C?FY:X9V85'>(^=(KQB0HN^!)%52KNW]:$*BD
MGJ[5G \WX+"0K!LO=S3]P^3_ %!+ P04    "  M@4Y.I5PO8<\"  """P
M&0   'AL+W=O<FMS:&5E=',O<VAE970X,RYX;6R55EUOFS 4_2N(]Q9L R%5
M$BD?FC9IDZI.VY[=Q$E0 3/;2;I_/]M0FMB7)GT)MCGW^-SK^' G)RY>Y)XQ
M%;Q692VGX5ZIYB&*Y'K/*BKO><-J_6;+1465GHI=)!O!Z,8&566$XSB+*EK4
MX6QBUQ[%;,(/JBQJ]B@">:@J*OXM6,E/TQ"%;PM/Q6ZOS$(TFS1TQWXR]:MY
M%'H6]2R;HF*U+'@="+:=AG/TL,*Q";"(WP4[R;-Q8%)YYOS%3+YMIF%L%+&2
MK96AH/IQ9$M6EH9)Z_C;D8;]GB;P?/S&_L4FKY-YII(M>?FGV*C]-,S#8,.V
M]%"J)W[ZRKJ$TC#HLO_.CJS4<*-$[['FI;2_P?H@%:\Z%BVEHJ_MLZCM\]3Q
MOX7! ;@+P'T RCX,(%T >0](/@Q(NH#$"8C:5&QM5E31V43P4R#:XVVH^1>A
MAT17?VT6;;'M.UT>J5>/LPPGD^AHB#K,HL7@,PSJ$9%F[[? T!8+[(7CRPV6
M/H*DEY 5 ,E@$03,D]AX<I%G"A,D($%B"9(+@LPI5(O)+*:VF-C)U$<DR,G4
MA]R1<0Y+34&I*2!U!!-D($%V>[%&(,$(4) [Q6HQZ0?%NHI8^0@RD&@.ZLQO
M.-3\JDX?X1VJ#QD^U#$H=0Q('<,$*(:O>GS[L:(!MT"^"A*[=H&N5@R N#0K
M '.7D(&:(=!ZY@@#>@?,"\'&@3[A' BV#@1XAU^UY'K5? AQB^9#$!D0"YL'
M MR#X $*V#[0)_P#P0:"  ?Q2W;=0@!([I;,APRY)8)=! $V0H:J#M]N-/9+
M1A*8 L/7&\> "N<SNNA %U\7G#NH)8#"(_=^0E0I<H\Y.FM$*B9VMLF3P9H?
M:F6^YV>K?2,YQZ:1<=87NL%LV\%WFK8[_4'%KJAE\,R5;I-L,[/E7#$M,K[7
MQ[K7#7$_*=E6F>%(CT7;%;83Q9NNXXWZMGOV'U!+ P04    "  M@4Y.U4^.
MU8("  "*"   &0   'AL+W=O<FMS:&5E=',O<VAE970X-"YX;6R-5MN.FS 0
M_17$>Q<,YI*((&V(JE9JI6BKML\.<0):P-1VPO;O:QN')6":?0GV^,R9,S.^
M).D(?64%QMQZJZN&;>R"\W;M."PO<(W8$VEQ(U9.A-:(BRD].ZRE&!V54UTY
MGNN&3HW*QDX39=O3-"$77I4-WE.+7>H:T;];7)%N8P/[9G@ISP67!B=-6G3&
M/S#_V>ZIF#D#R[&L<<-*TE@4GS;V,UCO )0."O&KQ!T;C2V9RH&05SGY>MS8
MKE2$*YQS28'$YXHS7%622>CXHTGM(:9T'(]O[)]5\B*9 V(X(]7O\LB+C1W;
MUA&?T*7B+Z3[@G5"@6WI[+_A*ZX$7"H1,7)2,?5KY1?&2:U9A)0:O?7?LE'?
M3O/?W,P.GG;P/NK@:P=_< #A?QV@=H#O#JK\3I^*JLT.<90FE'06[=O;(KF+
MP!J*ZN?2J(JMUD1YF+!>T] /$^<JB30FZS'>" ,&A"/8AQ">*43FS=S]X#["
M;@[QS!%\8Q*^<O?ODHC,!-!( !4!'!' R+W7N)UC0C I5 \)%:11D$\^#%8K
MLY3 *"68A_'CB10#9BJEAP3+4OK"!W/%T W<A?Z&1L6A0?%"RI&1(/IX^V(C
M03QO7QA-"A+/"K(48V6,L9IG"2=;)%O-8D!S".":#Z-K"#+MK ;=M18N- PL
M''KP>+]G&C2.XRY$,9[[9^ ]WLJ9!H7FOO2;U(!94C*]'^Y7S8<?/#[96P,&
M@'@BPAE=NC6F9_6@,2LGEX;+_3VR#H_FUI.7]LSNKS.1RWQ%"!$K_47_'J)_
MI;\C>BX;9AT(%\^%NM1/A' L]+M/HHV%^&,P3"I\XG(8B3'M7\=^PDFK7WYG
M^/N1_@-02P,$%     @ +8%.3F[>CK>T 0  V ,  !D   !X;"]W;W)K<VAE
M971S+W-H965T.#4N>&UL?5/M;ILP%'T5RP]0 TZR*@*D-=.T2:L4M=KVVX%+
M0/4'LYW0OGW]5<0RM#_8]_J<XW.,74Y*OY@>P*)7P:6I<&_MN"?$-#T(9N[4
M"-*M=$H+9EVIS\2,&E@;2(*3(LMV1+!!XKH,O:.N2W6Q?)!PU,A<A&#Z[0&X
MFBJ<XX_&TW#NK6^0NAS9&9[!_AR/VE5D5FD' =(,2B(-784_Y_L#]?@ ^#7
M9!9SY).<E'KQQ?>VPIDW!!P:ZQ68&ZYP ,Z]D+/Q)VGB>4M/7,X_U+^&["[+
MB1DX*/Y[:&U?X7N,6NC8A=LG-7V#E&>+40K_ Z[ '=P[<7LTBIOP1<W%6"62
MBK,BV&L<!QG&*:YL::*M$XI$*&9"OODO@28"O2&0Z"Q$_<(LJTNM)J3CSQJ9
MOQ/YGKK#;'PSG%U8<VF-ZU[KW:8HR=4+)<Q#Q!0+S WB\"^";F<(<09F%\6J
MBR+PZ7*'XGY=@*X*T""P^2L&O8D1,;N D<EDOLFR[";,"JZ@V1(7#9'%&?L[
M_\CT>9 &G91UORL<:J>4!:>9W;F+U+MG-A<<.NNGG]Q<Q\L6"ZO&]([(_)CK
M=U!+ P04    "  M@4Y.0T?#.4P&  #$(   &0   'AL+W=O<FMS:&5E=',O
M<VAE970X-BYX;6R-FFU3XS@,Q[]*I^^AMOS, #/;LD!I;V9G;^[N=18"=+9M
M>DF O6]_S@/=5I(A;Z -/\F*)?\M)YR_%>7/ZCG/Z]&OS7I;78R?ZWIW-IE4
M]\_Y)JM.BUV^C7]Y+,I-5L>OY=.DVI5Y]M :;=83$,).-MEJ.[X\;Z]]*R_/
MBY=ZO=KFW\I1];+99.5_TWQ=O%V,Y?C]PO?5TW/=7)A<GN^RI_S/O/YK]ZV,
MWR9[+P^K3;ZM5L5V5.:/%^,O\FRI7&/0$G^O\K?JX/.HN94?1?&S^3)_N!B+
M)J)\G=_7C8LL_GK-9_EZW7B*<?S;.QWOQVP,#S^_>[]N;S[>S(^LRF?%^I_5
M0_U\,?;CT4/^F+VLZ^_%VVW>WY 9C_J[7^:O^3KB321QC/MB7;4_1_<O55UL
M>B\QE$WVJ_N]VK:_WWK_[V:\ ?0&L#>(8W]DH'H#]=M ?VB@>P,]U,#T!F:H
M@>T-[% #UQNXH0:^-_!##4)O$(8:2/&>.?';Q'YLLD^V'#S*>[HE()-)5UAM
MI5YE=79Y7A9OH[);;+NL6=/R+%I%Y\W5MO;;/\9JK>+5UTNK]?GDM?'4,]..
M@0-&@CAF[AAF3TQB"/LX@(UC"L0>CD>84<)J<\Q<40;=RU?.BSUFKBFCT$ W
MG!MWS-QRC#]FYAP3T-1^.C6+SP->,HCE$Z3X0E&M W7HP/,.-.] MPXT[Z K
M@@ZQ+;+MBB@H\"@_,XJ! @")BH'!I 2+*X(9U 9C43:O&<Q# )2*&V90:X5&
MV"WCS7GAT:J:,Y@*0N$*H9@75N'I75#,Q=B\0J5",0/!2,-GV_#9-C3;..H.
M,8=3):PPN+@I)KT#C[PM&4Q)X00?M>6CMB1JC5(RM70<+;1%Q3=C,*<4QJX8
MS#@1T.K]RF 0E$5S<,U@RL>"037*8,$%CV*[Y;R9(-%JG#.8L$:@]7-',2L$
M6=L+BAGG74"+=DDQ%;S6B1IU?+8=S39:"U-'QM$&L-+/*.6<Q]OH%:6LT@:G
MFE(1"GB+HE2<<8=W*4I)*3S>8&Z9P&)J4#G,F< <X&JXHU049HGU;\%@QGN\
M/);,#1@M;&+G\GR:/4ES+$\4MJ?QQ&EW*(4+!K.Q?\#523%I(>:'#SOP80<F
M;#0_=X&9'X67WH)2/CBLLTO&EY>0V..;[I9M)P6)&@<][1E[M*BT1+O5C,&\
MT H5W!6#&2OQ@OG*8$WYXEV>P4[ .;SB;QA."M !Z<<M&YW&^C[GI\3A=#,8
MR "X5UEPT3GK)$XYQ\49/E#;XZ2GSA"2](;VH+R.??#]_Q<)M' ,+IR.<0?A
MBE/ W2%+X01>L912N&K8$24N&DJ=B%,LC3>L,X/%>%!@\T%3<<=0\A1(M7"4
M(+7"C>A3E9(X1$@U(,MJ4)8YBIP'64H!SC([(LDRI=@L<\X,/AL."FS.!V9P
MEBD5LXRW+M97\#C+''5P0CC.<N*D)^E1SYJ4C\3Y09K!YTV9:.8E[>;)D:AG
MCLY$V@7<'RP9SL0=/7E7B8Y3TI83'XL6DFEZK+<T55QW9TQ(G'ADHCN2M#W"
M9YZ%I V-<0%("\%P6AAI4[.4Z'PD;7UP8[Z0M%T!$Y3$QT*&DU:XE'!!HJ\!
MVM>0)G+10Z@]),\(E@P7,^Q"XO0"B6T7Y.<=XJ*'4/.'SR9+!I,^V,2*@\0F
M#LPF3@("IC=QTN'RYKC8.+E$7P&)'0?H<ZMD;P()/0.J9WC76O3,)YLH0T5Y
M3<UR0AJ!/ENAX1A.[?'B8"F?.%U!0F:!RJPUJ>65T$5P@]4>$CH&5,>(VO?,
M\4,\B9NK)8-Y9U-%DQ QH")&I!ZX,Y<)^!3,84;[A-"KA(0I*F%$Z!55IA-M
M\-+DJ'BZ2"1,)>1+4?DB*J^H+''Q,-0'\23$2U'QHA+?0Y\%Q% ?!)1ZXDZ;
M9:KO/72D[S@:BIQXG:J>A 8J1@-)+/3)\8FV%H?#4,:[U.0D1%#1_C"IZRJA
M7(HJ%Q%211L_W!OV"#H8B(0$JH0$*MH:TF <.Q+6BP2&N[#)P4O"35X^M:_#
MJ]%]\;*MFYD]N+I_Y?X%FI>,Z/I4GLTE<_U.GBV[%^J_W7?O]__(RJ?5MAK]
M*.JZV+3O'Q^+HLYC]/&P-!X]Y]G#_LLZ?ZR;CRY^+KOWZMV7NMCU_S,PV?_C
MPN7_4$L#!!0    ( "V!3DXB817V2P,  "T-   9    >&PO=V]R:W-H965T
M<R]S:&5E=#@W+GAM;(U779.:,!3]*PSO71+(EXXZL\IJ.]/.[&RG[3.K49D%
M8B%J^^\;($LA":LO0L*Y]YZ;G'M-9E=1OE5'SJ7W)\^*:NX?I3Q-@Z#:'GF>
M5 _BQ OU92_*/)%J6!Z"ZE3R9-<8Y5D0 D""/$D+?S%KYI[+Q4R<9986_+GT
MJG.>)^7?)<_$=>Y#_WWB)3T<93T1+&:GY,"_<_GC]%RJ4=!YV:4Y+ZI4%%[)
M]W/_$4XW(:@-&L3/E%^KWKM7I_(JQ%L]^+*;^Z!FQ#.^E;6+1#TN?,6SK/:D
M>/S63OTN9FW8?W_WOFZ25\F\)A5?B>Q7NI/'N<]\;\?WR3F3+^+ZF>N$L._I
M[+_R"\\4O&:B8FQ%5C6_WO9<29%K+XI*GOQIGVG1/*_M%\JTF=L@U 9A9\#
MAP:1-H@Z _0A'FD\ZO#P8P.L#?"= 8C&DWL#4&U #8.@7=MFL^)$)HM9*:Y>
MV>KME-2RAE.JY+"M)YO=;[ZI_:K4[&5!,)X%E]J1QBQ;3-C#A$-$;",BP\G:
M 2%#R,:&($H[3*#RZ)()G<F$C8.H'X.Y[2.G?=38HY[]!!IKT4)( RG:$ @
M8*R' P4(B]Q<D),+LKA $!ED6@SNA<& F'MC@R#$8(0+=G+!#B[(X(*M,!.&
M#!'$#A *C<5;8VOQ** C^TB<?(G-%YI\B16%(!*:L)7MBAB2B(F5%"$,,SJ$
M/=WVM'9X0HJ4L:,;FSJF4<B(>XFH<XFHS0:/:((Y';"[:VWBM)_<K+5X8BU'
M!%BOU@91('#W-W"[CF(-&M9(U.,SC#322>'M*HDU:% !$S(9">3N<C"\+>]8
M@PQ5AH2:;=F!0Q&S>[.-PX3TM3FD[FZPT.ZP!*,1%^Z^"-'=PH/N;@;M=F9)
M#]J=ZA.$(W]&T-V%H*,-V=*S:Q["L45UES*T:]DA/&HGA-&8\-PE#]D]PF/V
M?Y_5XAT@RBS)V2"EN#&UF%UF>%QP-X?0;@YF3UXZ,!":@@MZQZV<EX?F;%UY
M6W$N9&W;FVW/[TLX736G;6,^AM,GU_PCG$PW*D?[BR+X?A4(_H=N+Q+?DO*0
M%I7W*J0Z0#;'O+T0DJN\P(.2PE'=7;I!QO>R?J7JO6P/\.U BI.^G 3=#6GQ
M#U!+ P04    "  M@4Y.8ST?_[X#  "'$   &0   'AL+W=O<FMS:&5E=',O
M<VAE970X."YX;6R56-MRHS@0_16*#QAT04*D;%?%F<GDXJU*S=3N/!-;MJD!
MY 4<S_[]BHL)EEHQ>0D@GW/4?=1J4&8G5?ZN]E+6WI\\*ZJYOZ_KPTT05.N]
MS)/JBSK(0O^R566>U/JQW 75H93)IB7E64 0XD&>I(6_F+5C+^5BIHYUEA;R
MI?2J8YXGY7]+F:G3W,?^>>!'NMO7S4"PF!V2G?PIZ[\/+Z5^"@:539K+HDI5
MX95R._=O\<V*D(;0(OY)Y:D:W7M-*J]*_6X>'C=S'S41R4RNZT8BT9<W>2>S
MK%'2<?S;B_K#G UQ?']6OV^3U\F\)I6\4]FO=%/OY[[PO8W<)L>L_J%.#[)/
MB/E>G_U*OLE,PYM(]!QKE57M7V]]K&J5]RHZE#SYTUW3HKV>>OTS#2:0GD &
M@I[[(P+M"?2=$'Y("'M".)7 >@*;2N ]@4\E1#TAFDH0/4%,)<0](9Y*P.B\
M<NB=PC^F#(N-)\]R7FY,#$K0%59;J5^3.EG,2G7RRFZS'9)F3^,;S=+BS6A;
M^^V/NEHK/?JVX(S/@K=&J<<L.PP983!!EY@G #,@ AW"$ <!XU@2BT\N9[BS
M$3QDEYBO-B:\1'R#5(Q\[VT,-2;Z#LE$EY@'"",N,8\0)C:LO6K-\_6 5P"$
MPPM$X4*AK0 =6TL$K!#""F&K$(Y#,.Q8=A#>0HJNBF)*A+% =S:,4$((-JH!
M@&%,N%D2P*0\9MQ8SGL )DA,C+7X#DS*.0H-V .@%@DDC&WU",!HC*A9(C9,
M($Y->Y]M6*1C$]2H%1O&2,PP@U>;P:O-K-7F+((5.*S IU=<!"M$5RONJ8.P
M4:Z<A0P9!C\#,$1Q;!3FRH:%F(;$X9R HQ: <XZ\8U@AGNY<\YH"WPOHNG<]
M9IPN9LVF,,R#<)P(8>RP%83#',7($;KKE88! V.'!OPZNL7D$Q8Z.B:F$RRD
M5LJ$1RBDIH4 #H?6#E\!.&TU=:;O:-78[M6Z43@T' T LT]8Z&@!F$^PD%LI
M4Q3%G)D6 CA=A,3<PP".4+W9'=\SV-%[L-U\.'=I.#H!%I^PT-$+<#S!PMBN
M&L*QU04A'!*1784V3N<>.8J0.%H0L5L0Y\2AX>@%!$]WD#AZ 2'7'>PQ%R]J
MQ*Q/DF<(AT,L#-P*P$6(<_.3+1A]Y^>RW+4GVLI;JV-1-UF/1H=3\VU[:#;&
ME_CF$0/C3_J4W9V)W^6[(_I?2;E+B\I[5;4^G[1'B*U2M=31HR]ZY?<RV0P/
MF=S6S6VD[\ON:-P]U.K0'_N#X7\/B_\!4$L#!!0    ( "V!3D[4SLW-0@(
M )4&   9    >&PO=V]R:W-H965T<R]S:&5E=#@Y+GAM;'U546^;,!#^*XCW
M%3!@2$20&J9IDS8IZM3MV2&7@&HPLYW0_?O9AE *[EZP?7SWW7=G^YSUC+^(
M"D ZKPUMQ<ZMI.RVGB?*"AHB'E@'K?IS9KPA4BWYQ1,=!W(R3@WUD.]CKR%U
MZ^:9L1UXGK&KI'4+!^Z(:],0_G</E/4[-W#OAJ?Z4DEM\/*L(Q?X"?*Y.W"U
M\B:64]U *VK6.AS.._<QV!:IQAO KQIZ,9L[.I,C8R]Z\>VT<WTM""B44C,0
M-=R@ $HUD9+Q9^1TIY#:<3Z_LW\QN:M<CD1 P>CO^B2KG9NZS@G.Y$KE$^N_
MPIA/[#IC\M_A!E3!M1(5HV14F*]37H5DS<BBI#3D=1CKUHS]R']WLSN@T0%-
M#@'^KT,X.H1O#I%)?E!F4OU,),DSSGJ'#YO5$7TF@FVHBEEJHZF=^:>R%<IZ
MRS$.,^^FB4;,?L"@&2:8$)YBGT(@6X@]6KFC]P&*-2*,[1%":Q*A\0_?)1'9
M"2(K060(HAE!A)-%%08,-IC68#81\A>9K$&)GZ1V*;%52KR2@G&\D#)@XED4
M'*(P6&A9HU"T23\H++:*P18Q>"$&K\)\PD$:;!9J+# E>?.!G,0J)UG)B5?;
ME*SC;-(%J%B#XAC9E:16):FE,$LEZ?K I-%B*PL+:'ZJ!BG>[#8WP"^F\0FG
M9-=6ZGLSLTZ]]1'I;K"P[U7/'5KD&\W0L'\0?JE;X1R95+W&=(0S8Q*41O]!
M%:I2;\2TH'"6>IJH.1\ZY;"0K!L? 6]ZB?)_4$L#!!0    ( "V!3DX@^]Q<
M0 0  %$5   9    >&PO=V]R:W-H965T<R]S:&5E=#DP+GAM;)68ZW*B2A"
M7\7B 0(]W%-JU4;C1C?9-7OJ[/E-XABI!<8#).YY^\-E0&>F!XD_%/#KGKY-
M]Q33$\M_%P=*R\F?-,F*F7$HR^.M:1:O!YI&Q0T[TJSZ9\_R-"JKV_S-+(XY
MC7:-4)J8Q+(\,XWBS)A/FV?;?#YE[V429W2;3XKW-(WR_^YHPDXS XSNP<_X
M[5#6#\SY]!B]T;]H^?=QFU=W9J]E%Z<T*V*637*ZGQE?X/:9^+5 0_R*Z:FX
MN)[4KKPP]KN^6>]FAE5;1!/Z6M8JHNKG@RYHDM2:*CO^Y4J-?LU:\/*ZT[YJ
MG*^<>8D*NF#)/_&N/,R,P)CLZ#YZ3\J?[/1 N4.N,>'>/](/FE1X;4FUQBM+
MBN9[\OI>E"SE6BI3TNA/^QMGS>^I_<<C7 P7(%R ] +@# K87,#N!=IH:@4<
M+N#T @X,"KA<P.T%[&$!CPMX8TWRN8!_7L$:% BX0'!>83A*(1<(QSH-5I<Y
MZVS4L!?0)_N<;7)EE2[=<,XW&78=NH2#/7J5+N7@C(T7=$D'=_0J7=K!&^U+
MEWCP)1&SW5?-1EU&932?YNPTR=M><XSJE@:WE52EO'[:;/WFSVJS%M73C[GG
M!5/SH];$F;N6(9>,(R(+!/%"D5DBC&^)S#W&@,BL,(:(S%>,L47F 6,DO]8C
M;-ZH#!#)YF\($TCQ><36<D7F"6,\D?F.,;[(_, 8*>U;C)%L?D:8X!P?LZJ]
MO@ )7H"DT6 +&@#78.,:[$:#(VB0ZF'9,F[#9 WC6/5'2O=53+#'P>UQ$'ND
MVENVC'^QD'5C246SO@()MKBX+2YBBU3C2U=QVK;X1]I5*DEP<CU:YV:TSL?1
M.K<J"2CX/&9Q(<P>'F9/#;.T<^\\=2DINE>)S1 AF.GC9OJ*F4 D.Y<M4P_O
MRZJS9&/'8>MQV&8<]OTJ)@0AP(,0(%M"#D*@%I#DV! A6!'B5H1J*ERI2:Q;
MQA.JTPX(43>12@*Q?7 5\IM*.CXXH;;@ZV"CYP8+":,TB98<"L5\2<&^QRE'
MKLRO&D["'G#,OABEHH.Z@Q$@#DIC=,TAH2=!X*EQWW!22&986:4/O&9> D'L
M"C0Z-!,3[/%#%S13#K Q)QT/5AP2MHGO.'JG-6,,D#D66O)B:C</+%N_EJ:7
M@]K,E:VYXI"PCUPR,#A TY)![<E>J$N%IJ-!\(ET:OH1J W)"^53%"!])@3;
M#]0#P'CT!X8.3V&B:4H$:4IRF2PX).Y9WU%=0$ R4$]$TTB(VDB4>EH0M3TT
MW1LY6B%HX(E#0;1+=_!&&DEH:W1H&@GY1",AFD9"D$8B5]X]A\19B,;G"4'5
M4(J6:;H.P;J.H]&AZ2;$^T2$-#V"8#U"&GLK#HW91>;%VX'Z9>-3E+_%63%Y
M867)TN9MP)ZQDE9JK9LJ!@<:[?J;A.[+^M*OKO/V)5][4[(C?X%I]F]1Y_\#
M4$L#!!0    ( "V!3D[Y(<?/K ,  ,(0   9    >&PO=V]R:W-H965T<R]S
M:&5E=#DQ+GAM;)58VXZC1A#]%<0'F*YJKB/;TGBL*)$2:;11DF?&;MMHN3B
MQYN_3W-9@NG3D]D7 \VI>]=IRNM[57]M+DJUSK<B+YN->VG;ZY/G-8>+*M)F
M55U5J=^<JKI(6_U8G[WF6JOTV L5N<="A%Z19J6[7?=KK_5V7=W:/"O5:^TT
MMZ)(ZW]V*J_N&Y?<[PM?LO.E[1:\[?J:GM7OJOWC^EKK)V_2<LP*539953JU
M.FW<9WK:2^X$>L2?F;HWLWNG"^6MJKYV#[\<-Z[H/%*Y.K2=BE1?WM6+RO-.
MD_;C[U&I.]GL!.?WW[7_U >O@WE+&_52Y7]EQ_:R<6/7.:I3>LO;+]7]9S4&
M%+C.&/VOZEWE&MYYHFT<JKSI?YW#K6FK8M2B72G2;\,U*_OK?7@3):,8%N!1
M@"<!/_Q00(X"<A*0]*& /PKX"P%O"*7/S3YMT^VZKNY./93WFG:[B)Y\G?U#
MM]@GNW^GT]/HU?=MF(1K[[U3-&)V X9G&)H0GM8^F6!D8L>&>)A$CR9>$"9^
MQ.P1)L&.2!BK[!7(F8)("*S APK\7H'_H( 6R1HP08\I>PQC$P$T$0 3O#"!
M,!(;":&1$"CP%T80)L!&(F@D @J6.VO A+-D$<=2S*HR; \3%T8F;&_"I/2%
MK<8Q=#L&;B]VZV[ 1/,:BU6\R."+B:)@%20+GTU4N)*6:B;0XP1XO.B=76)D
M)N"0$S/3)I!D&$9L)ANH#()86--- A.0 .XG2P821E=)(A&:_@,D4T!FI'N
MI)C(OE_(PJ!D!D!B&0 9V?(3?BS HS'(I<_$P-B2@B#(PD*$J9*DH8)FNW*T
M(\V@2"0"5$6"^B4^V%4 R6+85Y8 ,%43X&HR C#).I(4 ?]-( D?41! AI$?
MV=W'QP !CJ<E18^@>?X-Q_\7LO\0\N@K/DT('!5D.2H(GQ44??YH)LS;!(B;
MC"^9V*QC$D1Q%-C: U,N <ZEY2D!03&VPY@<&9 C+<D1@&1B21YC#F/ 86Q3
M@9F)^?,E9$PZ;)*.F54(LF45<P,#;F#;)RWN3PY^(%K<-HS:QHC6!/ELZ2W&
MO<7@0XPMVYUQ;W'\ ]'BCN'/= P ^;8O6XD[1H*.89L*W R2/A^MQ,T@T0F\
MC!: ?*/IO-D@5ZCZW _)C7.H;F7;#4.SU6D0?^[G\,7Z3@_HPX#XGYIANO\M
MK<]9V3AO5:O'S'X8/%55J[2/8J7W^46EQ^DA5Z>VNXWT?3U,U<-#6UW'?PR\
MZ6^+[;]02P,$%     @ +8%.3OK0P)T& P  X@L  !D   !X;"]W;W)K<VAE
M971S+W-H965T.3(N>&UL=5;;CILP$/T5Q'L!7\"P2B)MMJI:J956K=H^LXF3
MH 5,L9-L_[[&>"F8\4O YLR<&7O.9#9WT;_*"^<J>&OJ5F[#BU+=0QS+PX4W
MI8Q$QUO]Y23ZIE1ZV9]CV?6\/!JCIHYQDF1Q4U9MN-N8O>=^MQ%755<M?^X#
M>6V:LO^[Y[6X;T,4OF]\K\X7-6S$NTU7GOD/KGYVS[U>Q9.78]7P5E:B#7I^
MVH:/Z&&/Z6!@$+\J?I>S]V!(Y46(UV'QY;@-DR$B7O.#&ER4^G'C3[RN!T\Z
MCC_6:3AQ#H;S]W?OGTSR.IF74O(G4?^NCNJR#?,P./)3>:W5=W'_S&U":1C8
M[+_R&Z\U?(A$<QQ$+<UO<+A*)1KK18?2E&_CLVK-\V[]OYO!!M@:X,F ,)/+
M2&0B_UBJ<K?IQ3WHQ\/ORN&.T0/69W,8-LU1F&\Z>*EW;SN&Z2:^#8XL9C]B
M\ R#)D2LO4\4&*+8X[4YQK # L9(C .RB#&%'5#0 34.Z,)!YB0Y8E*#:6V4
M<]2")@5I4H"&.33IB@87!8-9,I E UARAR5;L7Q M" P#0-I&$!3.#1L34.I
MIS9RD"5?LY#$8<G7-T-87L T!4A3K"N(>.)$":R3!(@4NT(906Q^NVDTT].2
MR:-(!# 1EVD$Y3.F%$>9IY 0*,Q'A &FE?CQB@FQJ/#E!"L8$8 I=9G(BHF0
M*/5<-(*EC@"M$U?K%C2_)X(BYM$'@M6. +D35^YHK7>:IIZN@F#!(T#QQ%4\
M6DL>85KX#@_6/ )$3US16]"BR!-_0<"Z1X#PJ2M\"UI<4Q+Y#@]6/BH (N02
M02#/7Q2&^P,&^@-U50N"/ >'X>Z @>Y 726!(,^Y8;@W8* W4+>Z+2B;%QW-
M,$L\5'!SP$!SH&Y]6]"\OG/,D"\IN#E@H#E0M[XM:)D4RJC;'>+9B-7P_FR&
M2QD<Q+4UD^UL=QI@'[$9T?[#Q^GW6]F?JU8&+T+I0<^,8R<A%-?A))%.^:('
M[FE1\Y,:7IE^[\>I<UPHT=F).I[&^MT_4$L#!!0    ( "V!3D[TU\3H*P(
M .$&   9    >&PO=V]R:W-H965T<R]S:&5E=#DS+GAM;(U5[6Z;,!1]%<0#
MU(3/KB)()=&T29L4=5KWVR$W =5@9CNA>_O9AE#B7E7]@^W+.<?G7L-U/G#Q
M(FL Y;VVK)-KOU:J?R!$5C6T5-[Q'CK]YLA%2Y5>BA.1O0!ZL*26D3 (4M+2
MIO.+W,9VHLCY6;&F@YWPY+EMJ?A7 N/#VE_YU\!3<ZJ5"9 B[^D)?H'ZW>^$
M7I%9Y="TT,F&=YZ X]I_7#UL,X.W@.<&!KF8>R:3/><O9O']L/8#8P@85,HH
M4#U<8 .,&2%MX^^DZ<];&N)R?E7_:G/7N>RIA UG?YJ#JM?^O>\=X$C/3#WQ
MX1M,^22^-R7_ R[ --PXT7M4G$G[]*JS5+R=5+25EKZ.8]/9<9CTKS2<$$Z$
M<":$R8>$:")$GR7$$R%^(\2V6F,JMC9;JFB1"SYX8CS=GIJ/:/40Z^I7)FB+
M;=_I\D@=O119$N3D8H0F3#EBP@5F-2.(5I^W"+$MRO =/;S=8/,>$26WD"T"
M27$3$9IG9/G1,L\@P 5B5""V O%-H59.H3",FRN&B9QD,4R,FTU0LPDBX%2T
MQ#"I8Q;#9(Y9#'./FTU1LRDB\,4QBV!2YS/=8!CGA+8?8V[,9JC9#!%PCKC$
M,,X1;SZ!V6(8]S,@BQ^]!7&R351Z%3]WROPOB^C<IQ]#TRB<>*G[]]ANWV3&
MYO^3BE/326_/E6Y#MED<.5>@+09W^O1K?=_,"P9'9::9GHNQZXX+Q?OI0B'S
MK5;\!U!+ P04    "  M@4Y./A!7UV("  !W"   &0   'AL+W=O<FMS:&5E
M=',O<VAE970Y-"YX;6R-5M&.FS 0_!7$>P,V 9,304JNJEJIE:*KVCX[B1/0
M ::V$ZY_7]L0RL&B\A)L,SNSLV19DH:+5YDQIIRWLJCDULV4JI\\3YXR5E*Y
MXC6K])T+%R55>BNNGJP%HV<;5!8>]OW(*VE>N6EBSPXB3?A-%7G%#L*1M[*D
MXL^>%;S9NLA]'+SDUTR9 R]-:GIEWYGZ41^$WGD]RSDO625S7CF"7;;N#CWM
M460"+.)GSAHY6#O&RI'S5[/Y<MZZOLF(%>RD# 75ESM[9D5AF'0>OSM2M]<T
M@</U@_V3-:_-'*EDS[SXE9]5MG5CUSFS"[T5ZH4WGUEG*'2=SOU7=F>%AIM,
MM,:)%]+^.J>;5+SL6'0J)7UKKWEEKTW'_PB# W 7@/N @%@OK9#-_"-5-$T$
M;QS1%K^FYAFC)ZQK<S*'MA3VGDY>ZM-[2J(P\>Z&J,/L6PP>8%"/\#1[+X$A
MB3V>AF,,$P1@CH$E"-[E&,$$:Y!@;0G6[PC(R&2+"2VFLACLPQHAJ!%.-?!8
M(YQHS$A$H$0$V(A'$M%$XL.<#P**$,#'9B1"EOJ(08D8\#&6B)=*;$")S?0O
M0V8(D \WAC_-DJ!Q9[0@,D@3D94?S"C-M"":*@7!6 DM+0@"NW"',. 'CU5:
M4+S0#]RN* #\3-XIP6(_<$\CH*G)I&HM*%J@ G<U MJ:K,<JX41ELYFK&=S:
M".AM,JE9]%\WWN"]7S)QM1-/.B=^J^RX'9SV4W6'[=SX!V]'\C<JKGDEG2-7
M>OK8&7'A7#&=B;_2CC/]%=!O"G919DGT6K2CL-TH7G=CWNN_-=*_4$L#!!0
M   ( "V!3DX7(QROV0(  +\*   9    >&PO=V]R:W-H965T<R]S:&5E=#DU
M+GAM;)5686^;,!#]*X@?4#AC,%1)I*;1M$F;5'5:]YDF3H(*F!DGZ?[];$,9
MP4?7Y4/ SKMW[Y[)<8N+D"_MD7/EO59EW2[]HU+-;1"TVR.O\O9&-+S6O^R%
MK'*EE_(0M(WD^<X&565 PC )JKRH_=7"[CW(U4*<5%G4_$%Z[:FJ<OE[S4MQ
M6?K@OVT\%H>C,AO!:M'D!_Z=JQ_-@]2K8&#9%16OVT+4GN3[I7\'MQM@)L B
MG@I^:4?WGBGE68@7L_BR6_JA4<1+OE6&(M>7,[_G96F8M(Y?/:D_Y#2!X_LW
M]D^V>%W,<][R>U'^+';JN/13W]OQ?7XJU:.X?.9]0;'O]=5_Y6=>:KA1HG-L
M1=G:;V][:I6H>A8MI<I?NVM1V^NEYW\+PP-('T"& $+?#8CZ@&@(@/<#:!]
M)P%!5XKU9I.K?+60XN+)[GB;W#Q%<$NU^UNS:<VVOVE[6KU[7C&6+(*S(>HQ
MZPY#1A@8$(%F'U(0+,6:..'D.L&]BXCB:\@&@22XB BM,[+QT5C$*,<5 44)
MJ"6@8Z, )D9A&((GB=$DL:.2,883)"A!XBB *)JH[#")Q=060R',0OV9'(L+
MC""CQ %N7" )XS@= Z^T,U0[0]R;:N\P\2@3BX"YTET<A)1%KG07F##*9I6G
MJ/(444XGRE,GT53S/Q&;]Q!7,C-49N;*9"E. "'>+<*//Z PTW#@ X]H#QI7
M2BA%SAD!0IJ">\X8,(S)[$$#VLON@#CJZ4PS!+P1@=N)YBW$6Q&X?0:QD+H%
MTYBEB(<($D*"_,\19$(8S)N(=SF(D0<QFZ' ^QPD_^$BWF[ [3>(B\QM;31,
M8L1%%PE9&&6(BP@RTF\CU\9@]!:ON#S8":GUMN)4*_,R'.T.4]@=,5/ 9']M
MIC,['?REZ4:[;[D\%'7K/0NE9PP[">R%4%P+#6_T.1WU-#DL2KY7YI;I>]F-
M5-U"B:8?%X-A9EW] 5!+ P04    "  M@4Y. (5NAKH"  "N"@  &0   'AL
M+W=O<FMS:&5E=',O<VAE970Y-BYX;6R-5FMOVC 4_2M1?D!CYTT%2(44;=(F
M59VZ?7;!0-0DSFP#W;^?[9A S$W;+_B1<\X]?G!]IR?&W\2>4NF]UU4C9OY>
MRO8^",1Z3VLB[EA+&_5ERWA-I!KR72!:3LG&D.HJ"!%*@YJ4C3^?FKDG/I^R
M@ZS*ACYQ3QSJFO!_"UJQT\S'_GGBN=SMI9X(YM.6[.@O*E_:)ZY&0:^R*6O:
MB)(U'J?;F?^ [U<XT02#^%W2D[CJ>WHIKXR]Z<'WS<Q'VA&MZ%IJ":*:(UW2
MJM)*RL=?*^KW,37QNG]67YG%J\6\$D&7K/I3;N1^YN>^MZ%;<JCD,SM]HW9!
MB>_9U?^@1UHIN':B8JQ9)<ROMSX(R6JKHJS4Y+UKR\:T)ZM_IL&$T!+"GM!M
MSB@ALH3H0D@_),26$'^5D%A"<B'$'Q)22T@=0M!MEMG]@D@RGW)V\GAW@5JB
M[RF^3]7YKO6D.4[S31V 4+/'>9:C:7#40A:SZ##A (.'F"6$"8>8XA9S40F4
MR]YJ"%E=A#=T)\#R%I'ED6/B4Y7'6T24#"$K )+"2XG 78\,/QH8C6&!&!2(
MC4 \$'!,%A!FQ&4"!DD @<RY&Q F=XX%PDQ@(REH)+T5F#B7M  P8T$R,$@&
M!'%N>0%A0CA(#@;) 0'GABX@3.QL*81)8",3T,@$$$@=(P#F:DL[(Y!.!AO!
M",Y ")#(W10$@5PO "A':,3,2#K$@ 1VS4 @-Q=] AJ: 1/> PX!"3>?65!J
M0$V7T)(8(>3\01XA((IN@2L B#,<HM&MA',<C@#W(TD.PUD.QU_/DQC.8?@+
M2:R 0!,W3G#UI-:4[TQ!)+PU.S12OP57LWW1]1#J)]F9+W0Q9I[JBTQ7R?TD
M?%<VPGME4CWXYEG>,B:I\HCNE,>]*A[[046W4G<SU>==!=4-)&MM=1CT)>K\
M/U!+ P04    "  M@4Y.LGVH+0H%  "=&@  &0   'AL+W=O<FMS:&5E=',O
M<VAE970Y-RYX;6R566%OHS@0_2M1OM^"[3&8*HFT37*ZD^ZD:D]W]YDV;A,M
MA"S09N_?GR$T&SS/:"M5#9#GF3<V\V;L+,Y5_;796]O.OI?%L5G.]VU[NHNB
MYFEOR[SY5)WLT7WS7-5EWKK;^B5J3K7-=_V@LHAD'"=1F1^.\]6B?_90KQ;5
M:UL<CO:AGC6O99G7_]W;HCHOYV+^_N#+X67?=@^BU>*4O]B_;/OWZ:%V=]'5
MRNY0VF-SJ(ZSVCXOYY_%W99,-Z!'_'.PY^;F>M:%\EA57[N;WW?+>=PQLH5]
M:CL3N?MXLVM;%)TEQ^/;8'1^]=D-O+U^M_YK'[P+YC%O[+HJ_CWLVOUR;N:S
MG7W.7XOV2W7^S0X!Z?ELB/X/^V8+!^^8.!]/5='T_V=/KTU;E8,51Z7,OU\^
M#\?^\SS8?Q^&!\AA@+P.$#0Y0 T#U'6 E),#:!A /SR8R0%Z&* ]2M$E]GXR
M-WF;KQ9U=9[5E_?AE'>OG;C3;KF>NH?]ZO3?N?ELW-.WE8GU(GKK# V8^PM&
MCC#)&+/F&#E&;#A">8ZV /+#3^3BN 8C83"R'Z]&1%-L0$$#JC= (P/&B_2"
M27K,\4(RB\FE9NP%#("Q(LV 6PZ4*G-&;X C[@2Y$^">>=PO&'WC261:*T">
M(Z5*A,@X>V+LA3+N+TA?0_J:TQ>>J[5FI)2DF)/G."&U5$%&"624 $;"8Y1P
M3R*6AE,"P%BH-+S(*>24 DY>HJU3MB!9K+0(>C+0DP&>E!>4X6^XH? T9]!1
M!AR1%Q+">.*Q01A/I;;3F!%9$6.]C)D)2OTT&T"CG(@IT3SW-P":I=G$:HF
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
M$ME@&N"3W]:,8&<H[ R!30$LILD +*:9 ]C;/B/8!(5-D&PA+*))0P"+:0B
MQ304ATU1V!0QB  LIHD!+*:!-7];,X+-4-AL:D !R!K1I* >-Y@&O*$<TUPI
M@SD*.T<,0*VM$4T&RP#3P#) -(.Z'L&2$#\W0V09"@].1 3_/QM$%,V!4_Z)
MTYCXRDE/$&)8NIAH2HR()L7[B=.8&/UP/! ZL2#Q9(^GHNDY]C^B'!5=(\:_
M,B2:6,09!)YJ,II"8$24Q1 8$\$#(AAT A67!]=E*6\K3K6V']3!;-_)/5#;
M28#YM>WP7(?Q8=.VAS^8/!2U\EZ$-GV*ZR;V0FAN&,,[\WDXFHZT'Y1\K^UM
M:NYEVY:U RV:KN4,^KYW]0]02P,$%     @ +8%.3AL^_DY3 @  .@<  !H
M  !X;"]W;W)K<VAE971S+W-H965T,3 P+GAM;(U5VXZ;,!#]%<1[E_LM(DB;
M5%4KM5*T5=MG)YD$M 93VPG;OZ]M"$M@4O4EV.;,N3AFG'>,OXH20%IO-6W$
MVBZE;%>.(PXEU$0\L18:]>;$>$VDFO*S(UH.Y&B*:NKXKAL[-:D:N\C-VHX7
M.;M(6C6PXY:XU#7A?S9 6;>V/?NV\%*=2ZD7G")OR1F^@_S1[KB:.2/+L:JA
M$15K+ ZGM?WLK;:>JPL,XF<%G9B,+1UES]BKGGPYKFU7.P(*!ZDIB'I<80N4
M:B;EX_= :H^:NG ZOK%_,N%5F#T1L&7T5W64Y=I.;>L()W*A\H5UGV$(%-G6
MD/XK7($JN':B- Z,"O-K'2Y"LGI@459J\M8_J\8\NX'_5H87^$.!/Q9X\3\+
M@J$@>"\(3?C>F8GZD4A2Y)QU%N__K9;H0^&M K69![UH]LZ\4VF%6KT6:1KG
MSE43#9A-C_$G&&]$.(I]E/ QB8V_*/?O!;9+1!#A"@$:(C#UP5V(!"<(48+0
M$(1W!.EL%WI,;#"-P<1)F,V2+$%1XF6XE0BU$B%6YBH])IJH?(AB7"1&1>*E
M2.;.\L8+D?A!D 352! -;Z:1+#2\,)NG14!9%N!64M1*BEB9G\%TN:>>]V!3
M,U0E0U2"6> ,47']&6J+H)+LP3>G>BCZ7;O_<:0'T/2X)GX6SMP@J+N3W]MQ
M)AVG!GXVS5E8!W9II/ZV)ZOC!?#LZXXU6]_HB\%TLG>:_E;Y1OBY:H2U9U+U
M0].U3HQ)4";=)[5;I;K(Q@F%D]3#1(UYW\W[B63M<%,YXW59_ 502P,$%
M  @ +8%.3G*[% [4 @  ]PH  !H   !X;"]W;W)K<VAE971S+W-H965T,3 Q
M+GAM;)66T6Z;,!2&7P5QW^)C X8JB;1DFC9IDZI-VZ[=Q$E0 3-PDN[M9P-%
MU#YLVDVPS7^.OV/L/U[=5/O<G:74P4M5UMTZ/&O=/$11MS_+2G3WJI&U>7-4
M;26TZ;:GJ&M:*0Y]4%5&E) TJD11AYM5/_;8;E;JHLNBEH]MT%VJ2K2_M[)4
MMW4(X>O U^)TUG8@VJP:<9+?I/[>/+:F%TU9#D4EZZY0==#*XSI\!P\[X#:@
M5_PHY*V;M0-;RI-2S[;SZ; .B262I=QKFT*8QU7N9%G:3(;CUY@TG.:T@?/V
M:_8/??&FF"?1R9TJ?Q8'?5Z'61@<Y%%<2OU5W3[*L: D#,;J/\NK+(W<DI@Y
M]JKL^M]@?^FTJL8L!J42+\.SJ/OG;7C#\S$,#Z!C )T"(/YK !L#F!,0#61]
MJ>^%%IM5JVY!.WRM1MA- 0_,+.;>#O9KU[\SU79F]+K)\G@576VB4;,=-'2F
MH6\5.U_!DDD2&8")@J(4M(]G;R@6$C T >L3Q+,$P)A3QJ!)>TT]:C+(G%(0
M%:1IC,/$*$SLP61YZL ,FF0V#6>SD@<67Y1RPG&4!$5)$!3NH"3>+$G,B8."
MB#A96)4414D1%&?QMZDW"Z/N=]PAHA@6=@M'43B"DCLHW)N%QMS]0(B(\AQ'
MR5"4S-^XL7.ZMAF"0ET47\0(4!PE1U%R#R4GSC;8YLC:9^!L[AVBHCP#' 8(
M;DS$\X2<+*58\#9 *G(7=Q3-8>_BV/4W1)0M'$3 +0XH N-:U"CZ!PPB6H3!
M[1)\O\R)9_O,GR<%\+P?D26,+)P"P"T3?,_,2>("^7Y(LS1UK0J3<98M. 3@
MQ@G)?VP_W/# =SS_;(/O9G=YZJTQHF)+IQMPTP/$]9CWS;GW]X?0^"(?)IK=
M0.R5\(MH3T7=!4]*F\M,?^4X*J6E24CN36%G<PN=.J4\:MODIMT.5[&AHU4S
M7C.CZ:Z[^0-02P,$%     @ +8%.3LR0U7LO @  208  !H   !X;"]W;W)K
M<VAE971S+W-H965T,3 R+GAM;'U5[8Z;,!!\%<0#G/DP)HD2I$NBJI5:*;JJ
MU]\.V01T!E/;"=>WKVT(1\"]/\%>9F9G-_:R;KEXDP6 \MXK5LN-7RC5K!"2
M>0$5E4^\@5J_.7-14:6WXH)D(X">+*EB* H"@BI:UGZVMK&#R-;\JEA9PT%X
M\EI55/S= N/MQ@_]>^"EO!3*!%"V;N@%?H+ZU1R$WJ%!Y5164,N2UYZ \\9_
M#E=[8O 6\%I"*T=KSU1RY/S-;+Z=-GY@# &#7!D%JA\WV %C1DC;^--K^D-*
M0QRO[^I?;.VZEB.5L./L=WE2Q<9?^-X)SO3*U MOOT)?3^)[??'?X09,PXT3
MG2/G3-I?+[]*Q:M>15NIZ'OW+&O[;'O].\U-B'I"-!!"\BDA[@GQ!P%_2L ]
M 4\(J"O%]F9/%<W6@K>>Z/[=AII#%*ZP[GYN@K;9]IUNC]316[8,R!K=C%"/
MV7:8:(0)!P32ZD.*R)5B&\WHT6."W1P1)X^0O0-"W"9B9YVQY<=C$QB[!;!3
M %L!_-"H=-*H#I-83-TU*HWB.)Z4ZX+%T6*BMG?! I+^I^S$Z3IQN%Y,7">S
M/$F03CW/020B>.)X#HHQ6;C]$J=?XO"[G/@ECKZD>'IJ=R[8,DG"B6<7#(>S
MLX%&%ZH"<;'#2GHYO];*G,M1=)B'SY&YD)/X5L_);JQ]R'1#]@<5E[*6WI$K
M?=WMI3QSKD"[#)ZTP4+/]6'#X*S,,M5KT4VW;J-XTP]N-'P]LG]02P,$%
M  @ +8%.3H:,FOL3 @  @P4  !H   !X;"]W;W)K<VAE971S+W-H965T,3 S
M+GAM;(54[8Z;,!!\%<0#G/DPY!(!TB67JI5:*;KJVM\.V01T-J:V$ZYO7]OX
M"$=0^B>VUS/CV66S6<?%FZP E/?.:"-SOU*J72$DRPH8D0^\A4;?'+E@1.FC
M."'9"B '2V(414&0(D;JQB\R&]N)(N-G1>L&=L*39\:(^+L&RKO<#_V/P$M]
MJI0)H")KR0E^@GIM=T*?T*!RJ!DTLN:-)^"8^T_A:HL-W@)^U=#)T=XSF>PY
M?S.';X?<#XPAH% JHT#T<H$-4&J$M(T_3M,?GC3$\?Y#_8O-7>>R)Q(VG/ZN
M#ZK*_4??.\"1G*EZX=U7</DDON>2_PX7H!ING.@W2DZE_?7*LU2<.15MA9'W
M?JT;NW;]3;IPM'E"Y C10-!OWR/$CA!?">E= G8$?"7@NX3$$9() ?6YVV(^
M$T6*3/#.$WT[M,1T7;A*].<J3=!^'7NGZREU]%(LPR!#%R/D,.L>$XTP833!
M;&8P P)I!X.-:,[&.KJAQ\GDA5M(]!GQ_'^1[0PDG?<9SY8KMOQX; +C>0$\
M*X"M /Y4[W!2[QZ36$QC,8L03\MQ"XK2) A3/"G*+2Z.TSC$DT>WMS@<+\-D
M^3C)#HTZBX$XV;^Y]$I^;I2I["@Z3)*GR'3F)+[1$Z8?"%>9?CS](.)4-]+;
M<Z7[WG;GD7,%VF;PH!U6>B(.!PI'9;8+O1?]7.@/BK=NY*%A[A;_ %!+ P04
M    "  M@4Y."T=W83<"   6!P  &@   'AL+W=O<FMS:&5E=',O<VAE970Q
M,#0N>&ULC57MCILP$'P5Q .<^2:<"-(E4=5*K11=U?:W0S8!G<'4=L+U[6L;
MCDO(*LH?;*]GQKL#K/.>BS=9 2CGO6&M7+J54MTS(;*LH*'RB7?0ZIT#%PU5
M>BF.1'8"Z-Z2&D8"STM(0^O6+7(;VXHBYR?%ZA:VPI&GIJ'BWPH8[Y>N[WX$
M7NMCI4R %'E'C_ 3U*]N*_2*3"K[NH%6UKQU!!R6[HO_O/$]0["(WS7T\F+N
MF%)VG+^9Q;?]TO5,1L"@5$:"ZN$,:V#,*.D\_HZB[G2F(5[./]2_V.)U,3LJ
M8<W9GWJOJJ6[<)T]'.B)J5?>?X6QH-AUQNJ_PQF8AIM,]!DE9](^G?(D%6]&
M%9U*0]^'L6[MV \[:3;2<$(P$H*)X"=W">%("#\)T5U"-!*B&8$,I5AO-E31
M(A>\=\3P>CMJOB+_.=+NER9HS;9[VAZIH^<B\X.<G(W0B%D-F. "XT\(HM6G
M(P+LB%5P0Y\=L+Y%A/$U9(- $CR)$*TSM/SPJLX0%XA0@<@*1%<"T<RH 1-;
M3#LS:JCT'N(JB1A-(D:2B'&!!!5('K<A1052)(-D9@.&26=&W&+2;/[.;S&+
MP,.37:#)+I!$%KA A@IDC]NEFQ_Z?WD/&(:"LIEC""C-9K9N,*4;S\A%<VA
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
M.MG2KI)(W2($$DBK(N#9FTP2J[X$V]F4O\>7-(027FS/^,R9,^-Q,6GS;'L
MAUZD4+;$O7/#D1!;]R"9O=$#*'_3:B.9\Z;IB!T,L"8&24'H;G=+).,*5T7T
MG4U5Z-$)KN!LD!VE9.;7"82>2KS'KXXGWO4N.$A5#*R#K^"^#6?C+;*P-%R"
MLEPK9* M\</^>,H#/@*^<YCLZHQ")1>MGX/QJ2GQ+@@" ;4+#,QO5W@$(0*1
ME_%SYL1+RA"X/K^R?XBU^UHNS,*C%C]XX_H2WV'40,M&X9[T]!'F>@X8S<5_
MABL(#P]*?(Y:"QM75(_6:3FS>"F2O:2=J[A/Z2:[F\.V ^@<0)< >HBUI$11
M^7OF6%48/2&3>C^P\,3[(_6]J8,SMB+>>?'6>Z_5?48+<@U$,^:4,'2%V2\(
MXMF7%'0KQ8G^$WZ?9=L$V:;&+!)D*P)Z^ ]!ODF01X+\+P7YFR(3YA Q*F)N
MWZ0@JYY*,%V<)HMJ/:HXR2OO,K /-+[)'WB:]B_,=%Q9=-'.OVSL?ZNU R]D
M=^,U]/Z#+8: UH7C.W\V:<R2X?0P_R"R?./J-U!+ P04    "  M@4Y.Q*)=
M\.X"   Q#   &@   'AL+W=O<FMS:&5E=',O<VAE970Q,#DN>&ULE5==;YLP
M%/TKB/<5;&P#51)I21=MTB95F[8]NXF3H )FV$FZ?S_;T"S@2Y7F(=CFG'O/
M]<>),SO+]ED=A-#!2U76:AX>M&[NHTAM#J+BZDXVHC9O=K*MN#;==A^IIA5\
MZTA5&>$X9E'%BSI<S-S88[N8R:,NBUH\MH$Z5A5O_RY%*<_S$(6O ]^+_4';
M@6@Q:_A>_!#Z9_/8FEYTB;(M*E&K0M9!*W;S\".Z7V-L"0[QJQ!G==4.;"E/
M4C[;SI?M/(RM(E&*C;8AN'F<Q$J4I8UD=/SI@X:7G)9XW7Z-OG;%FV*>N!(K
M6?XNMOHP#[,PV(H=/Y;ZNSQ_%GU!- SZZK^*DR@-W"HQ.3:R5.X[V!R5EE4?
MQ4BI^$OW+&KW/'=O&.YI, 'W!'PA(/(F(>D)R:T$TA/(K03:$^BM!-83V(@0
M=9/E9O^!:[Z8M?(<M-T&:KC=I^B>F?7=V$&WG.Z=60!E1D^+/*&SZ&0#]9AE
MA\$##!MB5A F'6(>? P>(C[YB+&8-0#YKR4RM5X*QF#!V/&3@= ,#I"  1(7
M@%P%0$D^JK3#,(>I'>9#$L?QJ%H A3,/M@9@A W"#5034#7Q5).4P@$H&(#>
M/F\,#, \!?EXWI;,*Y4F+)LL-043I7XB,IK398>A5XE(S')O[A]\'(K=!Q:4
M@8(R0! :"<K\1#@'! $X1IB_MP <S="D\!P4G@/"1T=VF7N))E*@&#:@&$B2
MC!TH]C8&IF^L YHP.P3D(N-</BA%$SL=P1Z#\ T>T8/88&\QZB\E ,09GJX=
MMBWD^U9./*?WO8:0::M!L-<@WVQR,F'2"'8;] Z[0;#?(,!P2#HNV >1.)G(
M ]L-\OV&TJD)@PT"9>^H%CZJ"#JKHVI7 (B@B5\!#!]7#!W7":D8/H48W5XM
MGO@1]P^8O[8 B'@'.;JZ*-G+]#?>[HM:!4]2FSN7NQGMI-3"!(SOS*8\F/O[
MI5.*G;;-U+3;[A+;=;1L^@MZ=/F7L/@'4$L#!!0    ( "V!3D[M6: PF (
M ,X)   :    >&PO=V]R:W-H965T<R]S:&5E=#$Q,"YX;6R55EV/VR 0_"N6
MWWLV&!P[2B+U/JI6:J7356V?N80DUMG&!9)<_WT!<ZECUFWZ$@.9G=E9O)C%
M2<@7M>=<1Z]-W:IEO->ZFR>)6N]YP]2-Z'AK_MD*V3!MIG*7J$YRMG%!39W@
M-,V3AE5MO%JXM4>Y6HB#KJN6/\I('9J&R5^WO!:G98SBMX6G:K?7=B%9+3JV
MXU^Y_M8]2C-+SBR;JN&MJD0;2;Y=QN_1_ $5-L AOE?\I ;CR%IY%N+%3CYM
MEG%J,^(U7VM+P<SCR.]X75LFD\=/3QJ?-6W@</S&_L&9-V:>F>)WHOY1;?1^
M&1=QM.%;=JCUDSA]Y-X0C2/O_C,_\MK ;29&8RUJY7ZC]4%IT7@6DTK#7OMG
MU;KGR?._A<$!V ?@<P B?PW(?$!V;0#Q >3: .H#Z"@@Z;V[8MXSS58+*4Z1
M[-^'CMG7#LVIV:ZU772[X_XS]51F];@J2;E(CI;(8VY[#!Y@\"7B+D1D]!)R
M'T+*++_$/  T?R")\7$V@T$SV,5G%QH%3)"!!)DC($."D8_;'I([2.L@"&4X
M+485N0[V$,)*BHL4SIF .9,@9S*C, $%">CU5<M!@CS( !$TVOX\,$IP!HO,
M0)%9N#7I2*.'T&'-\40I"U"C"#7&/HI0 U8H084R+%4ZEB@#B7>(8E@%I7!7
MIX .'G=D"@A-U M-G![HGPUS[S$7)2.SB;Y&<&,C'.IDY5@(!T(TRR?>9 0?
M  @X <A4KG _(G)]/R&X(Q$%RCI^VSUH:+><W#ZX<5'8N2692A5N2S3[#[=P
MUR&@[4*W17" X#P=VTT&GSU[T_G"Y*YJ5?0LM/F"NN_<5@C-#6-Z8RJW-Y>K
M\Z3F6VV',S.6_0VCGVC1^=M3<K["K7X#4$L#!!0    ( "V!3DYB--&"%0(
M '$&   :    >&PO=V]R:W-H965T<R]S:&5E=#$Q,2YX;6R-5=&.FS 0_!7$
M!QRVP21$!*FYJFJE5HJN:OOL))N SF!J.^'Z][4-AW)@I+Q@KST[LV/PDG="
MOJH20 =O-6_4-BRU;C=1I(XEU$P]B18:LW,6LF;:A/(2J58".[FDFD<$H32J
M6=6$1>[6]K+(Q57SJH&]#-2UKIG\MP,NNFV(P_>%E^I2:KL0%7G++O 3]*]V
M+TT4C2RGJH9&5:()))RWX2>\V6%B$QSB=P6=NIL'ULI!B%<;?#MM0V0K @Y'
M;2F8&6[P#)Q;)E/'WX$T'#5MXOW\G?V+,V_,')B"9\'_5"==;L-U&)S@S*Y<
MOXCN*PR&:!@,[K_##;B!VTJ,QE%PY9[!\:JTJ <64TK-WOJQ:MS8]3LK,J3Y
M$\B00,8$TGOIA5SEGYEF12Y%%\C^\%MFWS'>$',V1[OHCL+MF>*56;T5&<5Y
M=+-$ V;78\@'#!DQD>$?18A7A#B"^)X@7OL)8B]![ B2#P39I,H>DSI,XS D
M1I@BA/Q*B5<IF2LE:*+48^B]$D(X6U2B7B4Z5Z+Q1(G.E;(L711*O4*IQQ*=
M"*6SPZ,8DT6AE5=HY7&4^ G67H+UX]])YB7(/%97$ZMS3$(6;&+DOS-H1D&3
M;(%BX=KAQZUB_Z7"Y &S/A"E$YWHKEG89OR#R4O5J. @M.D[KCN<A=!@"-&3
M^1A+T__'@,-9V^G*S&7?!/M BW9H\-'XERG^ U!+ P04    "  M@4Y.X6,A
M)R0"  #"!@  &@   'AL+W=O<FMS:&5E=',O<VAE970Q,3(N>&ULC57M;ILP
M%'T5Q /4-I\A(DA+IFJ3-BGJM.ZWD]P$5(.I[83N[6<;RA)PJN9'_'7N.><:
M^SKON'B1)8#RWFK6R)5?*M4N$9+[$FHJ'W@+C5XY<E%3I8?BA&0K@!YL4,U0
M@'&":EHU?I';N:TH<GY6K&I@*SQYKFLJ_JZ!\6[E$_]]XJDZE<I,H")OZ0E^
M@?K=;H4>H9'E4-70R(HWGH#CRO]"EAL2F "+>*Z@DU=]SZ2RX_S%#+X?5CXV
MCH#!7AD*JIL+;( QPZ1]O ZD_JAI J_[[^R/-GF=S(Y*V'#VISJH<N4O?.\
M1WIFZHEWWV!(*/:](?L?< &FX<:)UMAS)NV_MS]+Q>N!15NIZ5O?5HUMNWXE
MR88P=T P! 1C (D^# B'@' 2@'IG-M6O5-$B%[SS1/^U6FH.!5F&>C/W9M+N
MG5W3V4H]>RFR.,G1Q1 -F'6/":XQ87J+V3@P\7\,TAY&(X'32& )HAN"A9L@
M=!*$EB"\<7F'('(21','83;9BAZ36$QC,2%)$XRQ6RAV"L5SH0A/A'I,?"V$
M[6^R[_',T$=^$J>?Q.$GGOA)9CK!(KVKDSIUTIE.'-\A6#@)%I__Q)F3('-D
M.CG)ZSDF(K%;A&#WG<*.LYS=H;AS+<GG4R7N"T4<-VJ6K ,4X7"B@ZZ*B:GN
M/ZDX58WT=ESINF2KQY%S!9H0/^@#6>H'91PP."K3375?]%6U'RC>#B\&&I^M
MXA]02P,$%     @ +8%.3ED[28*& @  8PD  !H   !X;"]W;W)K<VAE971S
M+W-H965T,3$S+GAM;)5676_;(!3]*Y;?5QO\'3F1EC;3)FU2U6K;,TU(8M4V
M'I"D^_<#3"W'7&_92_CPN>?< ]Q >6'\51PIE=Y;4[=BZ1^E[!9!(+9'VA!Q
MQSK:JB][QALBU9 ? M%Q2G8FJ*D#'(9IT)"J]5>EF7ODJY*=9%VU])%[XM0T
MA/]>TYI=EC[RWR>>JL-1ZHE@57;D0)^I_-X]<C4*!I9=U=!65*SU.-TO_8]H
ML4&9#C"('Q6]B%'?TU9>&'O5@R^[I1_JC&A-MU)3$-6<Z3VM:\VD\OAE2?U!
M4P>.^^_LGXQY9>:%"'K/ZI_53AZ7?NY[.[HGIUH^L<MG:@TEOF?=?Z5G6BNX
MSD1I;%DMS*^W/0G)&LNB4FG(6]]6K6DOEO\]# [ -@ / 2C^:T!D Z); V(;
M$-\:D-B 9!(0]-[-8CX0258E9Q>/]^>A(_K8H46BMFNK)\WNF&]J/86:/:^*
M-"R#LR:RF'6/P2,,OD;<NX@HN88\ )#T&K)Q(464#9A ^1C,8- ,-@31%4$.
M$T0@060(XC'!Q,>ZAZ0&TAH(0A$.\\F*W 9[<&%%@O,0SCD&<XZ!G&=,)R!!
M<ONJI2!!ZF2 8C39V]0QFH0Q+)*!(IEK<W).-STD&6G@(H4U<E C=S6F/G)'
M8V:I"E"A^.<!VQ2.0H$36 .%<$V'[H:$4R,6--;YD,U4&YKY[T"NFZB8ZB!'
M)T+9S+8@N*X1=H52-$,!5S:*;C_E""XT!%7:] Q:T-AN.E?/"*Y'E !N\0P%
M7)$H_0^W<+TAH.!<MYE3UGD\=1N,[B+]_/A&^*%JA??"I+K6S.6S9TQ211C>
M*>]']>(9!C7=2]W-5)_WUWX_D*RS3YI@>%>M_@!02P,$%     @ +8%.3N:P
M0E^@ @  P D  !H   !X;"]W;W)K<VAE971S+W-H965T,3$T+GAM;(U688^;
M(!C^*\;O.P4!]=(VV7G7;,F67&[9]IEK:6M.Q0EM;_]^@)Q1P:5?%/!YGO=]
M %]877GW)DZ,R>"]KAJQ#D]2MO=1)'8G5E-QQUO6J"\'WM54JFYWC$3;,;HW
MI+J*8!R3J*9E$VY69NRYVZSX659EPYZ[0)SKFG9_'UC%K^L0A!\#+^7Q)/5
MM%FU],A^,/FS?>Y4+QI4]F7-&E'R)NC881U^!O=;@#7!('Z5["I&[4!;>>7\
M37>^[M=AK#-B%=M)+4'5Z\(*5E5:2>7QQXJ&0TQ-'+<_U+?&O#+S2@4K>/6[
MW,O3.LS"8,\.]%S)%W[]PJPA' ;6_3=V896"ZTQ4C!VOA'D&N[.0O+8J*I6:
MOO?OLC'O:_^%I);F)T!+@ ,!H/\2$DM(;B4@2T"W$K EX%L)Q!+(C!#UDV5F
M_Y%*NEEU_!IT_09JJ=ZGX)ZH]=WI0;.<YIM: *%&+YN<)*OHHH4LYJ''P#$F
M2:>8PH,A:(IY=#%PBGAR$0F>0K8>"!D@D?(Z&(9>P]#PDXF9S"^0> 42(X!&
M B#)9TY[##&8QF ^)7$<S]QZ4#!S8%L/#)&)W"1KY,T:.5FC%/D%L%< WSYO
MQ"M G SR^;P5Q+&* ,H7K:;>0*D;",WFM.@Q>!0HP4FV&"CS!LK<0&2V78O,
M"40 <-;XT87EL;L5GCQJD"QFG7NSSCW3,_L/B]R)LQ "Q/ZJ$GN")/.2$3M1
M ,3QHAVP4,' #3^D!8UW%LR@.\$>',#+&?E+#( >]_.-84%DLN1P.92_& &W
M&N5DH1X"?V4 Z/8_&_AK \ >P^G\%'%!".!9G&AT;NF[S7?:'<M&!*]<JB/0
M'%0'SB53@O&=$CRIZ]30J=A!ZF:JVEU_I^@[DK?VOA0-E[;-/U!+ P04
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
M)2A*O:L2ZC'K#A.,,,$]8F,B0G@/V5H@\3UD9T(2]$?&DSF&,($U3* %PK%
MB.P"H54@U +16&"28]U!8@VI-02 ,/#19$7FP;8F+($!\NTU1]::([-F%-L%
MH%4 SE^UV"H0&Q6 "$SV-C;7(WY@LK":+/ZY-;L. L<>(0KM)LAJ@LPD_N2L
M[Y#A\@Y$=I/$:I*82<)D8I(8)@$$B=T%^/;.]BT'8_% XL'# <P_&L#>DB"P
M[)L_;?S B N31S[VS@66UD6/).R-!*+_2&MO)0#GI(5&+X1H>H*\T0-<O;._
M8'8N:N[LJ9#O OW$/E$JB!3TGZ1@+C\3AD%)3D+=+N0]Z]Z5W4#0IO\.\(:/
MD>PW4$L#!!0    ( "V!3DX'KIW!#P(  (D%   :    >&PO=V]R:W-H965T
M<R]S:&5E=#$R,2YX;6Q]5%V/FS 0_"N(]YX! _D00;HDJEJIE:*KKGUV8 GH
M;$QM)US_?6W#<1RQ[@7;R\SL[&(VZ[EXD36 \EX9;>7.KY7JM@C)H@9&Y /O
MH-5O*BX84?HH+DAV DAI28RB* A2Q$C3^GEF8R>19_RJ:-/"27CRRA@1__9
M>;_S0_\M\-1<:F4"*,\Z<H%?H)Z[D] G-*F4#8-6-KSU!%0[_S'<'A.#MX#?
M#?1RMO=,)6?.7\SA>[GS V,(*!3**!"]W.  E!HA;>/OJ.E/*0UQOG]3_VIK
MU[6<B80#IW^:4M4[?^U[)53D2M43[[_!6$_B>V/Q/^ &5,.-$YVCX%3:IU=<
MI>)L5-%6&'D=UJ:U:S^\66U&FIL0C81H(H3IIP0\$O [(?Z4$(^$>$% 0RFV
M-T>B2)X)WGMB^+H=,9<HW,:Z^X4)VF;;=[H]4D=O^6:]R=#-"(V8_8")9IAP
M0B"M/J6(7"GVT1T]^IC@<(_ R4?(T0%)W2:PLTYL^7A>)UZ[!6*G0&P%XGD3
M\+)1 R:UF-9BON!%J0Y(M%[4ZL#$*7:;39QFDWNSR:*C^^0N2Q@$P<*N [2)
MTH7?>Q#&JX5=-+N0#,3%_NS2*_BU5>:[SJ+3/'F,S(5>Q/=ZS@QCX5UF&%(_
MB;@TK?3.7.G?Q5[JBG,%VF+PH#W6>BY.!PJ5,MN5WHMA.@P'Q;MQ\*%I^N;_
M 5!+ P04    "  M@4Y./JXQ7L8!  !/!   &@   'AL+W=O<FMS:&5E=',O
M<VAE970Q,C(N>&ULC53;;J,P$/T5Y ^HN26;1("T2;3J2JT4=;7=9P>&@.H+
MM9W0_GUMXR":HE5?L&=\SO&9L4W6"_FB&@ =O#'*58X:K;L-QJIL@!%U)SK@
M9J46DA%M0GG"JI- *D=B%,=AN,2,M!P5F<L=9)&)LZ8MAX,,U)DQ(M^W0$6?
MHPA=$T_MJ=$V@8NL(R?X _IO=Y FPJ-*U3+@JA4\D%#GZ&>TV2<6[P#/+?1J
M,@]L)4<A7FSPN\I1: T!A5);!6*&"^R 4BMD;+QZ331N:8G3^57]EZO=U'(D
M"G:"_FLKW>1HA8(*:G*F^DGT]^#K6:# %_\ %Z &;IV8/4I!E?L&Y5EIP;R*
ML<+(VS"VW(V]U[_2Y@FQ)\0C(4K_2T@\(?DN(?6$](: AU)<;_9$DR*3H@_D
M<+H=L9<HVJ2F^Z5-NF:[-=,>9;*78KT.,WRQ0AZS'3#Q!!-_1NR^(I+%9\A^
M!K(<(=AX'(W&LT9CQT^F1I/5O$ R*Y X@70J<.-Q.T"6#L(=)(J2.%S=5/L]
MV/XK;+V(5^&-9SPY*?O4'HD\M5P%1Z'-H;NCJ8708!3#.W-_&_.ZQX!"K>WT
MAYG+X8X/@1:=?[YX_(<4'U!+ P04    "  M@4Y.,>"ZTKH!   E!   &@
M 'AL+W=O<FMS:&5E=',O<VAE970Q,C,N>&UL;93=CML@$(5?!?$ P2'V;A+9
MEIJMJE9JI6BKMM?$'L=H^7&!Q-NW+V"OE43<! ;.?&<&3,I1FS?; SCT+H6R
M%>Z=&_:$V*8'R>Q*#Z#\3J>-9,Z'YDSL8("U,4D*0K/LB4C&%:[+N'8T=:DO
M3G %1X/L14IF_AU Z+'":_RQ\,K/O0L+I"X'=H:?X'X-1^,CLE!:+D%9KA4R
MT%7XTWI_*((^"GYS&.W-'(5.3EJ_A>!;6^$L% 0"&A<(S ]7> $A LB7\7=F
MXL4R)-[./^A?8N^^EQ.S\*+%']ZZOL);C%KHV$6X5SU^A;F? J.Y^>]P!>'E
MH1+OT6AAXR]J+M9I.5-\*9*]3R-7<1RGG6([IZ43Z)Q EP2:QUXFHUCY9^98
M71H](C.=_<#"%:_WU)]-$Q;C4<0]7[SUJ]=ZMUN7Y!I L^8P:>B=ABX:XOF+
M"4V:T C8W $V:< F"=A$0'X'R!^JG#2[J%%1DZVR(NV2)UWRA$OQX)+2/*5-
MBJ1)D0 \/YBD--L'$W)SP^$!_6#FS)5%)^W\QQ*OM-/:@>=E*P_L_9M= @&=
M"]-G/S?3ESL%3@_SHR3+/T/]'U!+ P04    "  M@4Y.36SM_5<$  "=$P
M&@   'AL+W=O<FMS:&5E=',O<VAE970Q,C0N>&ULC9A9;^)($,>_"O+[Q'T?
M$4':$ BG%,UJ=YZ=T EH#&9M)\Q^^VT?L*:ZDO%+L)U?55?5O_JPAZ<L_UEL
MG2L'O_;IH;B+MF5YO(WCXF7K]DEQDQW=P?_G-<OW2>EO\[>X..8NV=1&^S1F
MA*AXG^P.T6A8/WO*1\/LO4QW!_>4#XKW_3[)_[UW:7:ZBVAT?O!]][8MJP?Q
M:'A,WMR?KOSK^)3[N_CB9;/;NT.QRPZ#W+W>17_0VS4EE4%-_+USIZ)S/:A2
M><ZRG]7-?',7D2HBE[J7LG*1^)\/-W9I6GGR<?S3.HTN8U:&W>NS]VF=O$_F
M.2G<.$M_[#;E]BXRT6#C7I/WM/R>G6:N34A&@S;[E?MPJ<>K2/P8+UE:U'\'
M+^]%F>U;+SZ4??*K^=T=ZM]3Z_]LAANPUH!=#*CXTH"W!OQBP.F7!J(U$'T-
M9&L@^QJHUD#U-="M@?[?0']I8%H#TW<$VQK8O@:^)5OE2&^3B]BT;Q[T+#=E
MO4W.@E,.3.*F%^OF?DC*9#3,L],@;^;G,:F6 7KKK;SSZFD]7>I_^@8O_-./
MD;5V&']4GEKFOF%8AU'B&AF'""6$7$,/B!]-KYD)Z@A 4Q1BU] C C'@:(8Z
MXM?0'(5  18H)*^A)182"'O5(^PU.IBZ0+&7_*([PW5GM0O><<&DQ3UPW .O
M/8B.!VY 5S2(JI%#$Z?ES"C0%R'&.&,PZPF"4<I@*TZ109652H/V0###+)1C
MA@RJ%!$ FR/>M"$&S( %@G%+.)APRQ S1'%8WE6(:1^; ?V[#C')K*025UO@
M:HM ;0&2&S>(["8GB%! Q@<$TYQ#;()@4A,+IM04P9CE"E3T$<&X\:4':B.8
MU=: V.:8-VDIZ.L%@A$E">C$98@IOYK!6;(*,:F-MJ#]UR'&K1'B$[4EKK8,
MU09=-9;!.$(R 7)[""FM?31 ZY!27$@H=4AYR((R/8:4K[@&OF8A12DQ K3-
M' G,2P/:88$$IAGLAF5(^26.PI5DA6#2&#@]UD@"4A#UR2:@<)E5(+/?1X"$
M8Q4L'T(*"M:BAY R1'!0@TE(246AA-.0JNH)%_"0^L:TAATX"S%*F+!PD\<B
M$W"U6:"U@&>894@Q:AG<@59(9-H?B$!#K!',%[8S[Z^4UKC2&E,:;M<-I#LC
MD1L&-VL,@D6?8! ')9^BPX%:/H;0-W(#Y]8,<R7A9.X3U*)/#98A1&\8E!>#
MX"%UC0UG/I'6X-(:3%J0^]CTD1:#!)@"$PSB(*TI.AR4-H0P:3%7$M1ZWB>H
M!1H4/**'D)<6[%<KS),%LVF-09VSV96T%I?6!M(J$.^]#;<+4.;?$JNOB*LP
MJ]=@]"62(#U(P>'JL:6N#@,4]M<2H9@_-%%XSE\AH#]&<BJ"MZ40%-Q2V5&L
MR3+NO#57'Z[62?ZV.Q2#YZSTK^#U6_)KEI7.._4]& VV+ME<;E+W6E:7VE_G
MS0>CYJ;,CNW'L/CR16[T'U!+ P04    "  M@4Y./"8G_1P#   @#0  &@
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
M&>6>A+8.RL>+N^,7.K=TY)'KI'P 2'_*UB#Y\)YE:;*9LV#W]V&#\KT'J:3
M5U X@9D/FZJ,'F#[<"%3V/CZ'X<2UU;E\.O=)EU5$5SXJ'K,>W!?>\"SHQ(9
M2E3N-UD5I7=W\ @\#^O!YU#\0PJ:R%.ZA>CQ(5L]1/F*:)!Y_%  K_NO0U)4
ML MX$:E^?_1Y?.?B?8*RP4-:92"I-*#Q;E4!\QBT<Y8;OZEG3'[][OOW'U[_
M]?4/-V]_>AV]_0'^?FW8WW%.YQD5[!M9>9$^ 'E#2B\TKYN!$7[<;?+'Z"%=
MWZ=E*R$X[$#QV&2_ ;P-Q8^C74I3(D6%?UX"1"Y>3B^9Y5R\'(TN<=DH#3.H
M^ ?DN#%BS!X.'-:X:8@=']+5)BG+[ Z@3QH #(Y3N45<X"HN(UP%S  8MA)A
M[C@Q7CTD.[B:1;I)!#-7M=TW](5/2;9);C<IX6P)MQ?F4[[VNV U7 !07HX8
M)"]'D\7G@:I]6\G199_DZJ@%E!L&/=_C]NV>^V(;HKP<."Q9?"::M._][LQ%
MM8LCJ^#V"'_I.,>&ZI57H-:TC?!["4&-'IU-&#ZBJ$.$%9=<QTP4?D[@__$!
MA)DC7)^%<.&H9Q[841A^<_7=U0_7KZ.;O[Y^_?&FV]"A2A]0E[0%H8D8$LO&
M#YYA-RGN ^B,/> TVV/[!+4.[3PEH.<JA:$ /G&T <T-T3HM/J$(@*0@GDUF
M3 >&\73F*(%>@_GQ:_#C[C;;;-)UE[*!@CC0R")K'N_[(MTGV=KI S1CSA<A
M@%0'JA]]YKM\=W\21.\+)-G54QSM-XG3<P#PHO; ;6LH3WF^?H0=-_<)LM1]
M!D"6!;6^_2J]2T5P4&V@10\B$!S;>OMOBEZ;+($SR:JLA9\ZI-@G3X@1+;\7
M*!!WZ6CZ^['UNTT*2C!.PT6"-PK0*_=YF9TZ5+.'-A45L!=O[AE@W('L>\:@
M//N1!] *D3$6B5B-N@.HN2MX6+2G84-[0NOJ5^4^6:7_]F(OU^[%7Z+FA08*
M^Y!OUFE1_L__=S$:SK\F-*R>FD1"Q&>VAKSL#P8C.,LB E(!D*:7AU]'5X<*
M: 32RJ] 5!S$@\% [C-_]@:-(U<]CC*T:JWY7GIMX:MH.!_$BQ$/.9R/X^E@
M?MZ0#71:KS.DM ![) 6]#)G"/H.S:)YZ!43?*% MF'G8'I@1YRW<%+G%:?Y9
M=I[$28RA+=OWO^AX,]!=DBW?QW^^[O(<%E9G^<<9_?AL^_U<../+Z$M!&/[O
M49O_F>\$>LB;;)? U40#-E*;XX;\F]?7T<T*9) #LLCAJ#=8QM%/<*%8"KC:
M@(@"H\D1"_T!9+JBLXO^O^CEL5OJKV<<M:F[^+[;VO'K+G<L<;?[K,?Y%I_U
M:-YM5CTF-5[=_#5Z\]V[GV_.E@V=XE>R-29WMK\$244'\_+R,U\.(,*K##CN
MSEMCX'O\BT2H?9$CZJ^CVZ?S)O@.53H$"HJ0@$6!C>BVP_!-*G?O-BE3,K8@
MWV2\Z3 $ODJ!*@%JJFZY/RJ$-'U(Z"_XS;V=U>6.AF"R!<I:Z+TX^7A]? (!
M42BD646ZS0Y;@M$1L>I#FZ9LP'KTU4_NWL&3CLM6^+&$PV0%NX%.K(CA]3I'
MPFH1C5NEAU:=[QS,.H7N#($3V/C^4(""6;*<?@1FWR?5H3 L"*!\ZI5@Z.<A
M(&V%Y'84P)(5/"<$%H;2.^(8+4&+'BJ:),B#DX9#P#SKYKGW#R6SOS:PGCJ*
M.^84QX\"W7O( 1@G#6T_ ,<KE,X#]%H0>B^PKK_;.)/D26^ILY@>>>;<J]$
M4MN&&SZTAGZ<_JK&#N"R8O@HG1)_CM9J#";9,U[KU(JCI *!Z3[;[<@M<!<]
M@6CXK+?1H-OU7C>WN_GKU8?7?WWWW:O7'VZ^B%[_YX]O/_[MN*^P573LX,=L
MP/W[]^GV-BT:DHJ1E]^+O'S-\G+G*TYP?JV>A\[!C03-RE-HS27NV/7R-^XD
MODDV=%4 P%:,FYY\P\LW)]Y\NUL5*=ZH"WB,/I$-CT#G9._7)'M'?_\ \E;T
M)B\>DV+=6/59]SK?$WEKO=[/'B#N$/2ZZ437&]WFWC;;VC'5Y_A(QZUKQ\9]
MEB4]9^U%&< _QXA\;+4=>-OPSY_ UJ[GZ\\U7#=_'S4OU?&I&D-X 1FD.U
MV3%&^P70)FM!1/C[ZN9'6FQO,%,OS4>4E("0O<5 FIY$47Q$.()$50I%J("
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
M/GE# ;ZCI8P40AB947N'"G):XP(23BQ%A('S*/[<%ZG*(10])9K_L_ES:QJ
MDHU&M8?X#^'2@CA=//J*;X($4TAR;.($<)J8YO7)X'8%X36O T&=32$47,#F
MK:-1BF]B=$5AMDEE0F>FB&\.D5$J)+$15WP@U:;TS-' PI'E\K!M&F%D!6;2
M@%4UX1Q"P'C#C"L4A5RT3AHXW#X)T7-;;S "!A)*O@UVP[@7!I+4"%BK8_C8
M/OG6>P(OQ0- QP"EYD!_.'4-W7I*:U&6_UES5=X91YN]'I+,4M)>?&H8>;;N
M\$IQF=\4@R!% F)%E*55(!(@$E$HUIU+*2U-2A@2$$I%H/HT.[%DN[OJT81\
MC'@>&-G8 !D[(FY3,0!3BK=WE0<F.$=8:&<LK!E 6(\C$6VY&FOCPO!^LF!5
M< YP#=NT&&]>%[G[%PI0S;;J^!(P9Z3>N RF,!7/Y\.0U;[FM>?=E6Y<B5$W
MSBR/0P9\(&*A@V7E''&DDV[N<)D\4C_ #21'R:;,E1X1,(PA7MA8 !='#5T\
M82=9!*1;2<H='RD+MA@\0VR=&P(0.%BX1-+H 5,!8-%DBI$+;%&3VV&VR3'Y
MUT%E.2JZ$!:;8TNBU.$SP4_V;%N/@!\[ GZT/-\[>->-*I[X;AJ+$E\)V7(J
MEN_OD Y)R%]2 :*7\1&3AI2R1W>WIL357(I.3-7L.<H:P7,F18B6:!)A;\3-
MBQFG:Q\@>G%U<WT9S0:SF(KEC09?Z\QTGQ'X!0D?--ZUWHX^/3S\6G+5BM1G
M7G(Z_36.29[>W+AO[%)1 ]NQ)P=#'/897Q_)S;IC\ST<X#9#X*#$3VBH!K/0
M%Y91 (F<+HTHR;NE2J%>A\0W628.&"LQ/B68I!9M6/!S.5QWY#% *T=C-<(M
MBF2;(B6E:!N1@M6G5X.2VL*^PF+C&K;[Y&-L&>Z>'^A>OXXN1LWGK0ILZ:+3
M8GDX>'E\Z3BHOFRD>W;!PV.32[0QY2LO.#2><J[,]KF_YI+"TTMW_CB28@ 9
MYRXHB>[RZ Y(X(?/)9JO0+"H;?RZ 2C%T>"Z:%@T6\$M2H?^5"N&(C>@L'[
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
M4BIT_2-5X]1]C 1P\<];[+R8%_<@D/VF2?G>7XH;XH!"ZS^B+ZP725BC6!&
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
M_%1'9D#9@;_3B,B,TB.2;/@S(/1P$2\'"X;49,+@PWL]GR/F7RSD.8 F@"1
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
M5K-%=+&88-4JQ/K1HH836*QC3I7!IO%BS@7$AA.L23?Y0[%BT%\LY-0G<NH
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
M!!I>/,4,6Y!VQ_@G3SF=8A+V>$F_8P*VSG<QH@1N6-L%BF4+ZKT^F=)S6 $
MQQEQ@O)P&G,#)<FU?ZD)UE<DM.^P^YNSAR)HB?+>R?HPB/E ??%\.R\\,>M3
MJ(LW+7GA70=+PK0OZJ4CQ[7J:V>?:@M. 5<Y?T<C-/N3LX#^PZ=@4ZA==2D=
M3A6@H2]OZ4[)#8OQC1@G3OKK!1[GQ0C1YX*0"*F')-_I&!=#^A4K>'&01EW;
M<@:9UL@?8[J]F-!(]-]Y?;QF*KX9F:"*:[L"">\"D6GL"X*V#F->?L2"*KUU
M_K@+,N+P:4GOTY&F[A/G^JZ#D=DL'8 E?'QH(/\<BH+^HC&YCO#(D4/K5FUP
M\F@4F]!)?.+Z(.$3_Y[?EO2\A!1%%S+ )2&OE DG^_<F>>P'4P167&^*%79T
M/KH2W1Y/R8(]&OZII?P3'@KF&TNE0FQ#@':+2LZ"1JG;H+?DG<+5565X=-HV
MK*MF\%S--UB/*-UQW15_J4G=LZ6O7/G"X,C09 T"PRBT/3NGA8FB#;&LL5S&
M- J);(M#E+GK.3VUI6">L<@NH!W+&LZ:."C.O^$*&QC0I+6;O 3I\4*+7789
M#D(\$OVK)!LNG&J1J9>#\PNU!@&E"X#LU^/>-&@[$L<VU\C#62ENHV&;:TEG
MH=T54IS377CLU'"')CK$.".54=<')[H[Z&-5,6EFX%=>4D2\X_#A)KH[2,@Y
M>B]/ YL&& L:B":=2/&)K/[DSI+QG$.O'7X22Z7(%-[F^D+0'+(([.,A*=#Y
MW=R:1=TU.8ZZ!-EORKT;I$0]&T/)H&V-YQ[-]IMDI746Q1U<4H\7VFSR*Z(@
MD2$E.NRAW$5'T4SZ=TIG3_1+PC7)*1M<1M?V')Q1E[!JX@RF/9<VMG9$"PVJ
M*BX'B[GCAGU4M;\$#69E0Q[=0$0UAJAE%9QJ %?6+-V.6(_(/NM$Q]AUNIU.
MH26M*+G4/)FT\5673I6PP.+\Z9K7Y,=(4&W=;)YZX9)=3?LG;;3JX$-6Z*=P
M'Q2QJ?T[B/PD=!G9D9=LGGX+ZUW _XQ3_ 1=P4&V^0X/F>D#=4(*J!V%1;OF
MJ41/J$? ;2X*I3(ZSF93]L:>Z1!MN4^9;Y:E.%*J@1J;NAJC$RKWXN$F [AZ
M'ZBT(#4*:F,61X&']S-]K/G.FS-3!Y5[]($CX_;%^K0A>%^$%R=%X1;?4HLE
M\NPW!&+.U'+5-H[C)*@<BT7H[WT)VA?H%Q9153=#\VZH'CH,3G]=43"?D3P;
M>6\JVJXPD;!Z3*5.GK_ 1,%0=C@4F.CD#BNTAY-3QS@1Z'8[WN.+#[I1: 'M
M,F\M(J#9@'6#ENM&:*R7F6^?C*FQ$<IO68>!O#D<5YR3(P@:2@3[UD<B5/!=
ME_PKF,V'&CR'_Q)*=O'@N\;5[4??^XB&!S*G>G,:$FEWQVE]>.^XA1#3&%PG
MU^VA*\(I&&9^8NN9.B%MFMX!,[VP/D&$900V$;9-TIH<]T7^6#UHZ'UC$3[$
MXA\'0,.U^O%<%]S;M',)OEF."-DVI;-V0/[\NIWG/OC^Y60"VO]DYIU/D^4B
MGDW;_59=H45)"?NF""M?FTQ2?/U!BD\2<Z$11UN[G#C[OQ<^:ZV$B*]S^X:R
M?T3I"B435'N/BC; ")OY":??PZ88HY NF9 ?OPD4LR_%4$JMO(M#VCOL%:#<
M% YEG2^88"58_PPY&/J@[[*-ND'=E4'*FL*]%O:1R>CD4@_L(:R!\:VU1-Y6
MD7$E=_!+@TF'G3S!37@M7<I*64-)/:EQ^[O#-BW0\!KB=U)0^Q#2._)BPRDP
M>&?I1:YEBA=TF_Q#:&WM?1;T?MQESG$(J/46(:&)+G27-;]>%4['?&"IPU$?
MU$Q8H[S&%X"_HI?CH./-\]18U*!1>Q67D%Q+GR)YHB!O>]O6Q-R4Q$I-VOT=
MJ9D%E*\]C LS<DL<4H_$$],FG][DCZ3I)$)E;G,J%KW#"=*U 8.T 7HK'8TY
M;PI4YHVT1?1UM5K,:62'70Z%PKR<ZR<B/\M1R/L]LT?NWN(0^MP:V]&/>XK:
MNKBZ^?&2!N_A^"^\41QVTJ-@F:3WFOG&1XE;H-O$E;:$!!',WNZ0]@!\^B\X
MW@V&UM0TGRQOBNLX$2[@KZY4!\XL',M&3&#>/_7TR/W4F9NZM8@V+*3#?O!R
M&B]G? +50T'UBX&=<\%Z ')/9/[$%PSD-J^;)]\;,S5E%,6$<IO>9[N=Q#W>
M 7T&=*500LD> W3XH%0'[VVMD9A0I!I!PHL/4IWDT'*)Y:P5!6/F(D>*XG[C
MLRV[)CM2"VH:SX?+9O<2916TCR RS4BAC2+9H6T*,^G)VL5,03,P+Z983+8Q
M8[;[ V>T"K6$<0QC#-OZW(U:5<KW:]0<&5;4)7^7",?%<-BZR\^$:RM#E))I
M%'[7P1LOYDO;EN#Y*#*/,(2G!4'^T.,*$63VSYZN%3LP#>5??EQ#<1=]_H%1
M;<EXM)RTYC%V4R.?T7^"&B'+0S?BY%C)1Q=UJOSSY=Q%T)K.*P0W#&75T]BX
M?D[B@%8SG3<#,:B-6<J^?\J2\,4?!H)Y/!W.CH!@W@3!S-D#_B4@\ 7ECFTO
M$'G8HN)ZH?+93VPXX6Q^LO)G"V1"T>=MNS@97E[B@B5P;N;28H[MNDA&(7?-
MDMU0$JT;R_:<SO#HVZ9O.(F<U;ZFV.<?A$-0S2RP3K2Z@$*:H OKV ,MKR"A
M/S'504D?KR>WV5VLZKMP=6GH!Z,#-O9UV^AO/'3U.S 9?AB/M0"%!OG^_^V]
MZV[D1I8N^GN?IR :-:<E@-).,N\V]@!R7>R:+I>K2V4;@\;Y02DI58Y3F9ID
M9I4UZ(??ZQ81*Q@13*8D]^XSYPPP;95$!N.Z8EV_;UW_#FK2UWJ%ZC4EWK59
M*EV&V'/81KF4OV.Y>NR-'V''5]>?]WA'0U=^33YH/,&<;T,(TT9KI)TKKA0P
M8M:,#E/=F7JE0XES#%RT75+!LO&DMA0$R?O5'1@=TP'3?D3UP)<BWIGE.A*T
MX4!L;7UIA:];&R\Q!><N&.%T076TQ MM075.+CY<G+(N1)R<F9!OH./=&^1@
MH@<)7Y-0!9H6["""_81L4BS7X)DRW$^.('U=WVYV2^4'P&Y^N+ >4.X,KH<Q
MEU,=:\^^4*[OMIN*+4N%3RL]&P9^!%?TA$X$W3?TO)DCO'K@02[8H'%4\JX#
M96O45_4*B\ZQ((GDP0(+\\6U1L=^80)4Z,VY-Q7QYPY6GGSWCMY1PRB_BD1,
MJQ8%Y!%Y/XFTD/?=5]0W#$[0E:*-E(3YC!0<V#D(X/XF&K*0%([K:KM]$-[-
M!I.!YF/490?3[+O-&N1#0YX2 =D2%Y\C-;-?'^>CZ0"MI,'(6<42:S0POWS7
M8(KT$.EG092\0ACJ:\GG*:&),7+,6ASUDN#$ASEL;]$Y#]S@&:A;,[ HAF4^
MG17IR51K]@T^)>Y_U#D1E7I]N^2*;FKS9$39*(1R>Z 7>B_HU[#LA@=)\%ND
MLYY@_EF)CXPI ^N4B"$.#?!%!FK.9$)\O[!8LW'/0?*$OLA.YI.2\JQ.AO3Q
MSF_ZA)SM5P^D*5  JSUHBO<(BI(+-FPE29]+;EV>OMJG4NMI4\4-)91-IW5H
MXPCF1W<XGW/S/CPCA-\Q123WO! Z9T,R255+2J]! 6EU0&,D$18ABZ!VF(),
M*FD&.9ETIQ!)D7E+I6>!HU^M1PM_=N?)_@4%U20AA>)&/6?9EP9!\ABE7Z1T
M6*L_,7P/4KAX<''PT!PTC<](X\ AMV!WVP]&MDYN4V&Q%G_+(E86G>?@SH\0
MU=Q(;6J!>'OHBNDFV@GKKFZO':\H1>57R]]J8K:#)20/K*QM8X6& 3$RA(FT
M7ENLEV'/_M+<SPWU_6O-"=^NT\Y5SXA$EO-+V5\Q<T!%PT%%!;/;8F=94WZ[
M(9@5*>(VQ\!_V$0]5\3%*3X"V;FR3):&AS'WO:M!;R-]'IW*5"U7'ER2BK29
MQ'7N4B2D2?,E<#3B;>7D0E.V$=M CE\@N?2!Y_SZ,P$OQJDL_4-/7A#>,)+Y
M]!+#8Y0G$?@D;*+YJ,A'PR#3'(/<@VBA+C(LC5J9R>VD;5,9:H%;N( TJ!,R
M#MP/L&#T2$<B>*)-5X5J2F%U,:+"9^CPR_9,E67&HQ194@A0G!73,A^"IE$0
M><T4_CO()]-)]MIQ,A,FW9<6"ATH,8/I$&O 0'4"-64RLWQ*CZ!J:O=IFH]
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
M2SYY4BQP8RB P$+%N4)[@W8P^A8H@N#Y29<4:S0X@=BBE (W1@=6J'[P9DB
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
MI[%>GE^<P^R"F!BV'T0OR"^P6K@8.4($P(.P"*#R>JX5XXRS_3_!HU4<=)"
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
M%3;37S$HMVS@;])'\S$5.C(\\;[=80"9&ZXL/2FXH*?=7N@W52W3K&+?0 ^
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
MOC$HH4=TL$<+![IVU%&-H%/R*0WO<P_'\".ZAH\;&!O5[Q)&==<YZ7RU\YR
M,AI=IT-C.3#%1<=^9V7LDU;&+F EV9D;&7?_&7QBZP?&-$T,R1@U'SVCYIAN
M'V[A0-=F\:Z!4FQT8@?DE6QD&&_DJ--B\?N2A^309'P0SZ'#.G$ < ^'+@MZ
MT_;A X7+@ZU)PTS=C,\@,XZ:L&C%>(> B5?0=<Z+/),;(#O*S Z6>3C(%M5#
M\.MY_-=':CM?X!)?-EPHTF@1"G]%?*^3%R'6KWJ)^ ^?U(4.T(5>G5'0"@=1
M'#H7XQ"&"7EW)4^!/+DW;9@*<OBO#'&L*=-L-*!#( =\' ;A\\#W.^D'NII\
M9]NP'6N^5O?N'0800=H\12 $_S&*YFI3A8AT[S76 [?@(8\DX!W"9KZBFV(-
M&^':<%^J159;Q!0@-MG/]\3RB0[]LT'IA.]9=GE=KRN0)*R$)B7$OU7K\VS
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
M3F$6,LSI)V(I._ICW01EX=[IQ4@6O&9HXU+S*>"'207! T5,/:4XXXY;-XO
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
MXC"^3UEA59P'Y$U@<J5TS>#8,9!;! ?.U>6::$1XKS)@*]<KF;B"2-=06>E
MIJ2U39J><4F<G*-5!T\-O*0LU:4##(Q_XT#'.NS:7PZ;%YWF=KP_03*61$#/
M/.(+V(:I!U7 1<*]D:AO*)HQ9I8J[Y,&.H#57HM-@>4-6%#VI>Y.H#64MX\H
M*.SL1WKV#H>G$EEW7J8Q"#9;4H#@>V=VN%V%#9?U+<7#<52F A"F6_>C3P>E
MF="3O\9XC(@[S/GHF6W/M9<L$KGI1/:VPPLP/W&)?X9$>*O:%K3E*DB5<F7Y
M82Q;%L?&90+RHH@ZC"UG^T?''.\5?SRVJ\.HOEY$?]MK:36GNM>MU[^++\I4
M&@J?& +$,V^J<?RJVE%FH<*+\1$8VOSUYKC/'\"2@Z=7]'1<HOGV87<E:-+9
M$@?C@W'WB!]U >W]/87/]_<#"'S(". A_?W]<8B!P71:,+QC['GTYBSTY]/U
M^NFIU-LT]=0C%)V U9SV7L_>*A#8)O/^<9;V!GAU5(J\*2T*NQB>6E^-L![U
M(>O4]9S1_J+[+.83_6X/H@LA_C4>;F<VB(?3&-P66,Y(?GBT0KH?/42R%@CJ
MU!MYAK@2E"_6_Y7/<)7'W_EQN0)[>+.N31F,JN6(^4>4/G@K<-]A-SI1KE$<
M]&>[>MM6.O-LSVS7JPC;]6&FY2,^?7BS?G ED9B7I+*/'L'QQA3?+/T/JMJM
MOH6P[KH#_4'?N7Y[U%DJ_<-FM4!Z0\/)%.Q<C4.>AI&=Q%,L6@/[M;YJKJNU
MS'<<7;8KU6&8@ CQVTVZT<W^?9 ,MDY^\7YM=@SP6??3X:/0K[^'3_.CQITB
MR.NQL.\W7RS202#BTS+0!:N/'^*Q='X]!_N<Z]WZI$=[&#\W46;$]+13>J#!
M/T@&5Z[Y3A0BQW5V9:[<#MTAO6:)!3LH_9YU8K5,#!0$GQLF]\EA^H2@HBS.
ML0>3FD)<WB($0V^Y?YR@.^(^Z=B4_UAAUXL&]+ @Z-5,:]07?[WDE*7+\W>I
M.\Q_1E4>=.[,_:T3A$EF^XZ^/.LQT9T)_A@=WO&KV+.=@\O8KYW6W'DDL3T4
MDN,$=J3UYUR>R_U5 W()9>SK+P(9J%MI_ST-K(C / 5C]\P[8"Z"]KJ22 V.
M"Y:[<'D:1\HP4,9^QQZO(/D;P@L2J$SH,]M2M_^O__$_L.-]FY,J@FVBO51S
ME_6*:Z/^NJ^VNWJ[>LA OZ_6UTL$S*]V57;R\[K:+]";HY%?'X&A%P,Z22\+
M0^/U?3J&$M51(*HQ^7KVI.SYM <L]41$ED0Y3MNW$O?KKP,7C$5>>@P>DW'>
M/W.S[&E?;W:.RA>A3ORHQT)]&[_9^B2W?)JNH3<NKK=OLS,5P%DO-":G]2P?
M[5^]?/W2NM'RK"@I*4JS!+EO7IB@$3M=;6IP3US2G>)7PR2I.-&<>_HUUPG$
MG]-I"#_#BJY0$K B%7&R8W?1A]E(W#]]I\$:W'(6!A<Q56L'$A[N?TG2C?Q%
M!5PC$QCY_O]LFMV__F]02P,$%     @ +8%.3AW(NI26 @  =@\   T   !X
M;"]S='EL97,N>&ULU9?;;AHQ$(9?Q3)5E4A5EH5R2,,BM9&0*K55I'#1N\BP
M7K#DP];KI4LN^RI1+OH:?90^27W8 Q .#245W+#C&?N;WV9V->XE:D[Q[11C
M!3)&>1+ J5+Q.\]+QE/,4'(A8LQU)!*2(:6'<N(EL<0H3,PB1KU&O=[V&"(<
M]GL\90.F$C 6*5<![)8NX-9?BQ '\.[L];=4J*M7P#UK;VJU^MWYU:K_S ;.
M(7",CV$ _?9;Z/T]]**^F:MC*^C6,]';X4_P[>?BM])7X)T=\%^/&PZ[#*P]
M[>XN[,,F[,,V[.4.[.\?/S=PJ\@Z<*>^ SQ0&[AE8"W6-U@OK^Y^+Q*\*O(F
M= Z=%S$,9H@&\!I1,I+$K(H0(W3NW WC& LJ)%#Z[=*Z+#BY=V'?C<R+EW,8
MX4+:W"Z#^QWETU<"Q<@())26 AO0.?J]&"F%)1_H@9ULG4]"(+>'\U@KG$@T
M]QLM6"VP#YUD)&2(99G&AX6KWZ,X,G(DF4S-4XG8,T&E!--&2-!$<&0U%"MR
M0V/'F-);\U7Z&BVQLPBX.>8OJ4-@5!2FWG5N5O^:+05OD>;8B]C67EP0DYE0
M'U*]'6['IG#PC<01R>PXBTH!FH[BF,[?4S+A#+O-[$SH[YFPWT-%'C 5DMQK
MGBF5L79@"<$,2T7&BY[O$L5#G*FBG+)H7\V-$]1\Z'.>8(XEHHNB=>T?\RG_
M9\7-SK]+ME^55<$'U&AZC!,0V3I^D<W+X]=H^K(3$'D2[TWW%$2>0DUV#O!E
M?WF1_@N+]/)V;:$G7.H(2R\8I80JPG.Y4Q*&V.DQ+7D OYB; %WJRZK&4.,5
M&NE+\!)?KPUQA%*J;LP6;3" E?W)"/?;Y:QAB0A@97_&(4F9O>UXU4V[_P=0
M2P,$%     @ +8%.3JQ,W'>V"   (E(   \   !X;"]W;W)K8F]O:RYX;6S%
MG%USVKH6AO^*AIO3,Y,TF \;.DUG:* ),VF2'>>DEV<4HX"F_F#+=MKL7W^6
M3$DD!]XY-RO<- 6,_2!;>K3TL3[_*LS/AZ+X*7YG:5Z>=E95M?YT<E(F*Y7)
M\F.Q5CE]\EB83%;TTBQ/RK51<E&NE*JR]*37[88GF=1YY\OG[;ENS(G[HJA4
M4NDBIS?M&_=:_2I?/[<OA:0#GM2=?#CM=#M"UE7Q3:>5,E-9J7-3U&N=+T\[
M04<\:E-6L;UV<V2F<YWI?]2B>56NBE\7A='_%'DETS@Q19HVW[(?-%^B*Y0O
M[]PK4^G$.["2#[>26$\[89=.^*1+_:!373V?=IK_IZI#O^+$^1E-.6S_;@KQ
MD_E_BK%X?-2)FA9)G:F\VI2C4:F]>EZN]+KLB%QFZK2S/43(?"%F>44T8IYO
M3D7'VM]"EYXO-K^KHA)[A17FDZ8/S'P16' ^R+/KJ_CZ<CZ=W,VF(KZC/]]G
M5W>QN/XFKF]FMPYD#T#V#@CYWYX#V0>0_8-!GEU_OW$@!P!R<$!(KR2' '+X
MCI!?)Y>3J[.9B"]FL[O8 0P!8'@P0/'A1CJ0$8",#G>K)_&% SD"D*.#0<87
M$[?Y&0/(\0$AO4H3=%%+WN7%C.LLD^99%(\BULM<T]<DV6>2)$5-]G$QH7"8
MC7-%W0;J6^0$E2A[;.F2(<L$S)KY)K41]S*ME?BN9%F;MWC(+P&W8&2Y.A+V
M7S'[N]9/,K5T1TWW8IX_N9C(, &S8@B%#J#>G/)*#ODD8!8*/6YKZC,^'XF;
ME*K$ILAL&:[M%UU*))6 V2KG1;'XI=/4Y4'^")@%,J?.>+ZT%Q63LE1^14#.
M")BE02V:J17=P=]TDM)_S) F FY/%%FFJZ;-:)ZP,PIG*/Y1>>+7A1ZR1(_9
M$O-\H;*-'.QGMBFV$'242X@$T6,6Q%09:MQL7$G-6EF9NMT*]V HPBR)6T7-
M&QGB5B4%2;85R?60('K,@HA7TJA5D2Z4*?_5M&_5L\N&K-!CMD)<%<G/XZ^R
M5+9>9+;BMJ/@'E)$CUD1LVR=%L]*B5@^49TM&U.X<,@,/68SW,G??@."M-!C
MUL(/I9>KBF[CY$D9N:02LX^=AX?DT&.60ZR6+X,NYZI8&KE>Z>1EX,7%1*[H
M,;MBJLNDT8,5V37U3C:'N$,9R!)]9DM,$FH]2OV&"7FAS^R%N'XHU=^UO;FS
MIY82^D@)?68EQ"I5B:T1?]725,JDS^*;SB5I7Z9BZ@X'].'X%+<>Z!R+FGIS
M\[DX;N*<30_ UA0B=S&1*?K<ID!AK#_8AX319Q;&GF!1?+B3!.(]FT@=?>ZA
M*A0T^J6)I-)GCS5>@L9M"?[;94-&Z3,;!4>/PL5$1NDS&V4;/NXJOP%RR8 ]
MXFC%D3L)D5D&S&9I!Y0[ 9%A!MP3("BR%!]<3&28 ;-A=D=N.TL3SH$P&V9'
M"+>3$>EEP*R7??'2'U 7$^EE\!Z1R<["0S89'"9$V>'F 1++X)"ABN?F 1++
MX#"A"O4AF_)TYPR19H;O&+(([T4#ZF(BUPRYHQ@4+/@SL,@X0^Z8!O;"^RXF
M,LZ0.Z:!F ,7$QEG>-"89NABPGEW;NE S-#%1-(9,DL'8T8N)K+0D-E"&'/D
M8B(+#9DM]'8^5GR8JDKJU!/Z$"EHR*R@?<'V\2:B<%>%( 6%S K:CWFIY8,[
M Q\B!87<:[YVC@ELYY'=OF6(%!1R!ST(TS-EB!04'F1:?HOIFC)$"@JY5WY!
M3->4(5)0R+WV"V*ZI@SA C!F!;GC5<?"&[VR;:>+B104,BL(#EWY50@I*'S?
M$;;6 -NQBXDL%+[7"-NQ.%O)?$EW6^>B6BEZ7HUQIUHC9*'HW<?;2)-982J[
MWEK,74QDH8C90KLP9V6EZ4PV<G<QD84B9@N]&1L\MJ-OQ%G5K3FH"%DH8K;0
M+LS79_2'BXDL%'%;" YDNC4]0A:*N"V$,+UV,T(6BK@G=R"FV_6(X$)D]LF=
M?4N.Z"F]\I9+(PM%S!;:,WI-C>=BH;WULQ&R4,0]'+</\[JN2J_K,4(6&C%;
M:"_F5TF.3UQ,9*'101:;;0-+MWD?(0N-F"VT%_-<4O/N3@"-D(5&AYD VKK(
MQ406&AU@ LBV1,8T["XFLM"(V4*[,6.+TUJW/$(6&C%;:#?FIIHKX6[9&2$+
MC9@MM!MSJDNY7!JU=#'AAAAF"^W!5(_*&.K?N9C(0B-F"^U::_JB2F]9YQA9
M:,R])V;?-.JFG^QB(@N-N2>%$*;7WQPC"XVY)X4@IMO?'",+C;DGA2"F.]0U
M1A8:'VA)] ;3'>H:(PN-#[$R^K6JNYC(0N-W68GPV@+)U-UL[;:;8V2A,;.%
MMICN&(*=(?H3$[F8R$)C9@MM,:V%*)I,]:84"=0.=_W'Q80;,YDM]%*:_G#<
MK2J5H3ZH@QET\=9,9@_MN^U_O.Z!PLV97683[5LZ0^@R36H/%.[5[#*[:#]H
MTP)XH'#79I?;1G"53]\#A?LVN]P^@J ##Q3NYNPR&PDL2&I-O@1=N*&SR^RD
M_:#-6GP/%.[T[#);":Z=FOK-$]SYV67?^NFQG=]K<4_?J*GF']&3ZH'"K:!=
M9C-!4#]G $X:P)TUH 5ZKZ=:Q,]EI;)2Q!\G'BA.&\"^2-L#_:$>RD3F]JXG
M'_U1Y !G$>!.(P! Q4UM/%!H)NZ$ BW0LY66IA!W*EGE15HL/5!H)NZ4 A"T
M59F@F;@3#;1 9SEU2M9*G&</%W9XT0.%9N+.-0!K?:M$H9FXDQ"@$FU7)F@F
M_J0$'NCDK]C.PQY1&WKYIGF"9N+.4@!!;[P>/DQ4$'!G*FB!?I<YD2CQHS _
MRY;K8;Z"@#MA 03U*Q-,71!PYRYXLX-VVV5NK?4,8!J#@#V/ 5PB[T5,,*=!
MP)[4P-U1^V9#K9?(!28W"#;9#4Z:P\LOGQ?J4>=J<447*>G]A"+O&R/LGS\_
M>FB;D,<Z36U0?IU?%M*^WYQCFY[QR_\ 4$L#!!0    ( "V!3DY:@&%0A0,
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
M+_M'RX;V]C=02P$"% ,4    "  M@4Y.'R// \     3 @  "P
M    @ $     7W)E;',O+G)E;'-02P$"% ,4    "  M@4Y.)^B'#H(   "Q
M    $               @ 'I    9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0
M   ( "V!3D[#>+M([@   "L"   1              "  9D!  !D;V-0<F]P
M<R]C;W)E+GAM;%!+ 0(4 Q0    ( "V!3DZ97)PC$ 8  )PG   3
M      "  ;8"  !X;"]T:&5M92]T:&5M93$N>&UL4$L! A0#%     @ +8%.
M3IB7"=#/ @  . L  !@              ( !]P@  'AL+W=O<FMS:&5E=',O
M<VAE970Q+GAM;%!+ 0(4 Q0    ( "V!3DYQKY1'H 0  #X6   8
M      "  ?P+  !X;"]W;W)K<VAE971S+W-H965T,BYX;6Q02P$"% ,4
M"  M@4Y.QR?LJ[H!  ! !   &               @ '2$   >&PO=V]R:W-H
M965T<R]S:&5E=#,N>&UL4$L! A0#%     @ +8%.3@$K3E<C P  G0P  !@
M             ( !PA(  'AL+W=O<FMS:&5E=',O<VAE970T+GAM;%!+ 0(4
M Q0    ( "V!3DY1"')6' (  "<&   8              "  1L6  !X;"]W
M;W)K<VAE971S+W-H965T-2YX;6Q02P$"% ,4    "  M@4Y.+W]MY<H$  #'
M%P  &               @ %M&   >&PO=V]R:W-H965T<R]S:&5E=#8N>&UL
M4$L! A0#%     @ +8%.3K(7O;%= @  9 @  !@              ( !;1T
M 'AL+W=O<FMS:&5E=',O<VAE970W+GAM;%!+ 0(4 Q0    ( "V!3DZ\?KK7
MW 4  /(=   8              "  0 @  !X;"]W;W)K<VAE971S+W-H965T
M."YX;6Q02P$"% ,4    "  M@4Y.F5E&@*T(   V,   &
M@ $2)@  >&PO=V]R:W-H965T<R]S:&5E=#DN>&UL4$L! A0#%     @ +8%.
M3JOO#^$P @  E 8  !D              ( !]2X  'AL+W=O<FMS:&5E=',O
M<VAE970Q,"YX;6Q02P$"% ,4    "  M@4Y.:Q[?N;0!  #2 P  &0
M        @ %<,0  >&PO=V]R:W-H965T<R]S:&5E=#$Q+GAM;%!+ 0(4 Q0
M   ( "V!3DXPOC'UM0$  -(#   9              "  4<S  !X;"]W;W)K
M<VAE971S+W-H965T,3(N>&UL4$L! A0#%     @ +8%.3F+088:S 0  T@,
M !D              ( !,S4  'AL+W=O<FMS:&5E=',O<VAE970Q,RYX;6Q0
M2P$"% ,4    "  M@4Y.9,7*YK0!  #2 P  &0              @ $=-P
M>&PO=V]R:W-H965T<R]S:&5E=#$T+GAM;%!+ 0(4 Q0    ( "V!3DZ^K,'<
MM0$  - #   9              "  0@Y  !X;"]W;W)K<VAE971S+W-H965T
M,34N>&UL4$L! A0#%     @ +8%.3K2Q7":T 0  T@,  !D
M ( !]#H  'AL+W=O<FMS:&5E=',O<VAE970Q-BYX;6Q02P$"% ,4    "  M
M@4Y.&H#9)K4!  #0 P  &0              @ '?/   >&PO=V]R:W-H965T
M<R]S:&5E=#$W+GAM;%!+ 0(4 Q0    ( "V!3DY[+=2,M $  -(#   9
M          "  <L^  !X;"]W;W)K<VAE971S+W-H965T,3@N>&UL4$L! A0#
M%     @ +8%.3AZ9G(RU 0  T@,  !D              ( !MD   'AL+W=O
M<FMS:&5E=',O<VAE970Q.2YX;6Q02P$"% ,4    "  M@4Y.L%^=B+8!  #2
M P  &0              @ &B0@  >&PO=V]R:W-H965T<R]S:&5E=#(P+GAM
M;%!+ 0(4 Q0    ( "V!3DX"RMH[LP$  -(#   9              "  8]$
M  !X;"]W;W)K<VAE971S+W-H965T,C$N>&UL4$L! A0#%     @ +8%.3E,(
MR@NU 0  T@,  !D              ( !>48  'AL+W=O<FMS:&5E=',O<VAE
M970R,BYX;6Q02P$"% ,4    "  M@4Y.+B<OB;4!  #2 P  &0
M    @ %E2   >&PO=V]R:W-H965T<R]S:&5E=#(S+GAM;%!+ 0(4 Q0    (
M "V!3DYP1B UM@$  -(#   9              "  5%*  !X;"]W;W)K<VAE
M971S+W-H965T,C0N>&UL4$L! A0#%     @ +8%.3E BX9NU 0  T@,  !D
M             ( !/DP  'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6Q02P$"
M% ,4    "  M@4Y.)2/)?;4!  #2 P  &0              @ $J3@  >&PO
M=V]R:W-H965T<R]S:&5E=#(V+GAM;%!+ 0(4 Q0    ( "V!3D[_O63@LP$
M -(#   9              "  190  !X;"]W;W)K<VAE971S+W-H965T,C<N
M>&UL4$L! A0#%     @ +8%.3DC,9*ZT 0  T@,  !D              ( !
M %(  'AL+W=O<FMS:&5E=',O<VAE970R."YX;6Q02P$"% ,4    "  M@4Y.
M.1(OC;4!  #2 P  &0              @ 'K4P  >&PO=V]R:W-H965T<R]S
M:&5E=#(Y+GAM;%!+ 0(4 Q0    ( "V!3D[T&#DAM $  -(#   9
M      "  ==5  !X;"]W;W)K<VAE971S+W-H965T,S N>&UL4$L! A0#%
M  @ +8%.3L]9[1&T 0  T@,  !D              ( !PE<  'AL+W=O<FMS
M:&5E=',O<VAE970S,2YX;6Q02P$"% ,4    "  M@4Y..K[_H+8!  #2 P
M&0              @ &M60  >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;%!+
M 0(4 Q0    ( "V!3DZ_;ODPM@$  -(#   9              "  9I;  !X
M;"]W;W)K<VAE971S+W-H965T,S,N>&UL4$L! A0#%     @ +8%.3N J=8ZT
M 0  T@,  !D              ( !AUT  'AL+W=O<FMS:&5E=',O<VAE970S
M-"YX;6Q02P$"% ,4    "  M@4Y.[S)2O.<"  "R#   &0
M@ %R7P  >&PO=V]R:W-H965T<R]S:&5E=#,U+GAM;%!+ 0(4 Q0    ( "V!
M3D[:@/1EP $  #<$   9              "  9!B  !X;"]W;W)K<VAE971S
M+W-H965T,S8N>&UL4$L! A0#%     @ +8%.3@I?_HGA 0   04  !D
M         ( !AV0  'AL+W=O<FMS:&5E=',O<VAE970S-RYX;6Q02P$"% ,4
M    "  M@4Y.T(L< [<!  #1 P  &0              @ &?9@  >&PO=V]R
M:W-H965T<R]S:&5E=#,X+GAM;%!+ 0(4 Q0    ( "V!3DYL[\FNN $  -(#
M   9              "  8UH  !X;"]W;W)K<VAE971S+W-H965T,SDN>&UL
M4$L! A0#%     @ +8%.3L]%^T"V 0  T@,  !D              ( !?&H
M 'AL+W=O<FMS:&5E=',O<VAE970T,"YX;6Q02P$"% ,4    "  M@4Y.WIUM
ME<,!   W!   &0              @ %I;   >&PO=V]R:W-H965T<R]S:&5E
M=#0Q+GAM;%!+ 0(4 Q0    ( "V!3DX;BBJ*Q@$  #<$   9
M  "  6-N  !X;"]W;W)K<VAE971S+W-H965T-#(N>&UL4$L! A0#%     @
M+8%.3F11[1K$ 0  -P0  !D              ( !8'   'AL+W=O<FMS:&5E
M=',O<VAE970T,RYX;6Q02P$"% ,4    "  M@4Y.%=/&V.H!  !F!0  &0
M            @ %;<@  >&PO=V]R:W-H965T<R]S:&5E=#0T+GAM;%!+ 0(4
M Q0    ( "V!3DXI=A=STP$  )P$   9              "  7QT  !X;"]W
M;W)K<VAE971S+W-H965T-#4N>&UL4$L! A0#%     @ +8%.3OC],7+= 0
M 04  !D              ( !AG8  'AL+W=O<FMS:&5E=',O<VAE970T-BYX
M;6Q02P$"% ,4    "  M@4Y.!X.[--L!   !!0  &0              @ &:
M>   >&PO=V]R:W-H965T<R]S:&5E=#0W+GAM;%!+ 0(4 Q0    ( "V!3DZI
MU*D7MP$  -(#   9              "  :QZ  !X;"]W;W)K<VAE971S+W-H
M965T-#@N>&UL4$L! A0#%     @ +8%.3C^YSZJT 0  T@,  !D
M     ( !FGP  'AL+W=O<FMS:&5E=',O<VAE970T.2YX;6Q02P$"% ,4
M"  M@4Y.\GT5;+<!  #2 P  &0              @ &%?@  >&PO=V]R:W-H
M965T<R]S:&5E=#4P+GAM;%!+ 0(4 Q0    ( "V!3DX"#N=$LP$  -(#   9
M              "  7.   !X;"]W;W)K<VAE971S+W-H965T-3$N>&UL4$L!
M A0#%     @ +8%.3C/:T:*X 0  T@,  !D              ( !78(  'AL
M+W=O<FMS:&5E=',O<VAE970U,BYX;6Q02P$"% ,4    "  M@4Y.#:U.2*X"
M  "?"P  &0              @ %,A   >&PO=V]R:W-H965T<R]S:&5E=#4S
M+GAM;%!+ 0(4 Q0    ( "V!3DXMWD3Q9P(  )\)   9              "
M 3&'  !X;"]W;W)K<VAE971S+W-H965T-30N>&UL4$L! A0#%     @ +8%.
M3N!X_=C< 0  ^@0  !D              ( !SXD  'AL+W=O<FMS:&5E=',O
M<VAE970U-2YX;6Q02P$"% ,4    "  M@4Y.%EXF7]T!  #Z!   &0
M        @ 'BBP  >&PO=V]R:W-H965T<R]S:&5E=#4V+GAM;%!+ 0(4 Q0
M   ( "V!3DYE6F$P\ $  .8$   9              "  ?:-  !X;"]W;W)K
M<VAE971S+W-H965T-3<N>&UL4$L! A0#%     @ +8%.3LX02H)A @  U <
M !D              ( !'9   'AL+W=O<FMS:&5E=',O<VAE970U."YX;6Q0
M2P$"% ,4    "  M@4Y.)?AL^*H!  #) P  &0              @ &UD@
M>&PO=V]R:W-H965T<R]S:&5E=#4Y+GAM;%!+ 0(4 Q0    ( "V!3D["Q'$"
MD ,  !L1   9              "  9:4  !X;"]W;W)K<VAE971S+W-H965T
M-C N>&UL4$L! A0#%     @ +8%.3E.B)![) @  M0H  !D
M ( !79@  'AL+W=O<FMS:&5E=',O<VAE970V,2YX;6Q02P$"% ,4    "  M
M@4Y./L 5&,H#  !J$0  &0              @ %=FP  >&PO=V]R:W-H965T
M<R]S:&5E=#8R+GAM;%!+ 0(4 Q0    ( "V!3DXUK%T?*0(  "P&   9
M          "  5Z?  !X;"]W;W)K<VAE971S+W-H965T-C,N>&UL4$L! A0#
M%     @ +8%.3L^A>"!>!0  YB$  !D              ( !OJ$  'AL+W=O
M<FMS:&5E=',O<VAE970V-"YX;6Q02P$"% ,4    "  M@4Y.(YW,34($   _
M%P  &0              @ %3IP  >&PO=V]R:W-H965T<R]S:&5E=#8U+GAM
M;%!+ 0(4 Q0    ( "V!3DY'P']DB@0  %X:   9              "  <RK
M  !X;"]W;W)K<VAE971S+W-H965T-C8N>&UL4$L! A0#%     @ +8%.3G<T
M, L" @  > 4  !D              ( !C;   'AL+W=O<FMS:&5E=',O<VAE
M970V-RYX;6Q02P$"% ,4    "  M@4Y.0J]@(O$"  "$#   &0
M    @ '&L@  >&PO=V]R:W-H965T<R]S:&5E=#8X+GAM;%!+ 0(4 Q0    (
M "V!3DY+E+WD$P(  (H%   9              "  >ZU  !X;"]W;W)K<VAE
M971S+W-H965T-CDN>&UL4$L! A0#%     @ +8%.3N%6RR$Z @  !0<  !D
M             ( !.+@  'AL+W=O<FMS:&5E=',O<VAE970W,"YX;6Q02P$"
M% ,4    "  M@4Y.>.M0*#$#  #W#@  &0              @ &IN@  >&PO
M=V]R:W-H965T<R]S:&5E=#<Q+GAM;%!+ 0(4 Q0    ( "V!3D[^9Y/<$ (
M #L&   9              "  1&^  !X;"]W;W)K<VAE971S+W-H965T-S(N
M>&UL4$L! A0#%     @ +8%.3D[\GOA7 @  J0<  !D              ( !
M6,   'AL+W=O<FMS:&5E=',O<VAE970W,RYX;6Q02P$"% ,4    "  M@4Y.
M$MUYZ#@"  "1!@  &0              @ 'FP@  >&PO=V]R:W-H965T<R]S
M:&5E=#<T+GAM;%!+ 0(4 Q0    ( "V!3DX>)DZ4* (   D&   9
M      "  57%  !X;"]W;W)K<VAE971S+W-H965T-S4N>&UL4$L! A0#%
M  @ +8%.3O(L]18! @  Q04  !D              ( !M,<  'AL+W=O<FMS
M:&5E=',O<VAE970W-BYX;6Q02P$"% ,4    "  M@4Y.DWU%@]H!  #S!
M&0              @ 'LR0  >&PO=V]R:W-H965T<R]S:&5E=#<W+GAM;%!+
M 0(4 Q0    ( "V!3DX9TB/*X@$  *8$   9              "  ?W+  !X
M;"]W;W)K<VAE971S+W-H965T-S@N>&UL4$L! A0#%     @ +8%.3IO./"W?
M 0  ^@0  !D              ( !%LX  'AL+W=O<FMS:&5E=',O<VAE970W
M.2YX;6Q02P$"% ,4    "  M@4Y.?S]!,N8#  !_$P  &0
M@ $LT   >&PO=V]R:W-H965T<R]S:&5E=#@P+GAM;%!+ 0(4 Q0    ( "V!
M3DYF\%MS!P(  &P&   9              "  4G4  !X;"]W;W)K<VAE971S
M+W-H965T.#$N>&UL4$L! A0#%     @ +8%.3@Q05 ,2 @  ;08  !D
M         ( !A]8  'AL+W=O<FMS:&5E=',O<VAE970X,BYX;6Q02P$"% ,4
M    "  M@4Y.I5PO8<\"  """P  &0              @ '0V   >&PO=V]R
M:W-H965T<R]S:&5E=#@S+GAM;%!+ 0(4 Q0    ( "V!3D[53X[5@@(  (H(
M   9              "  =;;  !X;"]W;W)K<VAE971S+W-H965T.#0N>&UL
M4$L! A0#%     @ +8%.3F[>CK>T 0  V ,  !D              ( !C]X
M 'AL+W=O<FMS:&5E=',O<VAE970X-2YX;6Q02P$"% ,4    "  M@4Y.0T?#
M.4P&  #$(   &0              @ %ZX   >&PO=V]R:W-H965T<R]S:&5E
M=#@V+GAM;%!+ 0(4 Q0    ( "V!3DXB817V2P,  "T-   9
M  "  ?WF  !X;"]W;W)K<VAE971S+W-H965T.#<N>&UL4$L! A0#%     @
M+8%.3F,]'_^^ P  AQ   !D              ( !?^H  'AL+W=O<FMS:&5E
M=',O<VAE970X."YX;6Q02P$"% ,4    "  M@4Y.U,[-S4("  "5!@  &0
M            @ %T[@  >&PO=V]R:W-H965T<R]S:&5E=#@Y+GAM;%!+ 0(4
M Q0    ( "V!3DX@^]Q<0 0  %$5   9              "  >WP  !X;"]W
M;W)K<VAE971S+W-H965T.3 N>&UL4$L! A0#%     @ +8%.3ODAQ\^L P
MPA   !D              ( !9/4  'AL+W=O<FMS:&5E=',O<VAE970Y,2YX
M;6Q02P$"% ,4    "  M@4Y.^M# G08#  #B"P  &0              @ %'
M^0  >&PO=V]R:W-H965T<R]S:&5E=#DR+GAM;%!+ 0(4 Q0    ( "V!3D[T
MU\3H*P(  .$&   9              "  83\  !X;"]W;W)K<VAE971S+W-H
M965T.3,N>&UL4$L! A0#%     @ +8%.3CX05]=B @  =P@  !D
M     ( !YOX  'AL+W=O<FMS:&5E=',O<VAE970Y-"YX;6Q02P$"% ,4
M"  M@4Y.%R,<K]D"  "_"@  &0              @ %_ 0$ >&PO=V]R:W-H
M965T<R]S:&5E=#DU+GAM;%!+ 0(4 Q0    ( "V!3DX A6Z&N@(  *X*   9
M              "  8\$ 0!X;"]W;W)K<VAE971S+W-H965T.38N>&UL4$L!
M A0#%     @ +8%.3K)]J"T*!0  G1H  !D              ( !@ <! 'AL
M+W=O<FMS:&5E=',O<VAE970Y-RYX;6Q02P$"% ,4    "  M@4Y.LD-= ND"
M  "]"@  &0              @ '!# $ >&PO=V]R:W-H965T<R]S:&5E=#DX
M+GAM;%!+ 0(4 Q0    ( "V!3DZDXT>7N (   ,+   9              "
M >$/ 0!X;"]W;W)K<VAE971S+W-H965T.3DN>&UL4$L! A0#%     @ +8%.
M3AL^_DY3 @  .@<  !H              ( !T!(! 'AL+W=O<FMS:&5E=',O
M<VAE970Q,# N>&UL4$L! A0#%     @ +8%.3G*[% [4 @  ]PH  !H
M         ( !6Q4! 'AL+W=O<FMS:&5E=',O<VAE970Q,#$N>&UL4$L! A0#
M%     @ +8%.3LR0U7LO @  208  !H              ( !9Q@! 'AL+W=O
M<FMS:&5E=',O<VAE970Q,#(N>&UL4$L! A0#%     @ +8%.3H:,FOL3 @
M@P4  !H              ( !SAH! 'AL+W=O<FMS:&5E=',O<VAE970Q,#,N
M>&UL4$L! A0#%     @ +8%.3@M'=V$W @  %@<  !H              ( !
M&1T! 'AL+W=O<FMS:&5E=',O<VAE970Q,#0N>&UL4$L! A0#%     @ +8%.
M3O6RBE$5!   #Q,  !H              ( !B!\! 'AL+W=O<FMS:&5E=',O
M<VAE970Q,#4N>&UL4$L! A0#%     @ +8%.3J=O2B-. @  30<  !H
M         ( !U2,! 'AL+W=O<FMS:&5E=',O<VAE970Q,#8N>&UL4$L! A0#
M%     @ +8%.3LOK1V;@ 0  E@0  !H              ( !6R8! 'AL+W=O
M<FMS:&5E=',O<VAE970Q,#<N>&UL4$L! A0#%     @ +8%.3GRU.N*^ 0
MT@,  !H              ( !<R@! 'AL+W=O<FMS:&5E=',O<VAE970Q,#@N
M>&UL4$L! A0#%     @ +8%.3L2B7?#N @  ,0P  !H              ( !
M:2H! 'AL+W=O<FMS:&5E=',O<VAE970Q,#DN>&UL4$L! A0#%     @ +8%.
M3NU9H#"8 @  S@D  !H              ( !CRT! 'AL+W=O<FMS:&5E=',O
M<VAE970Q,3 N>&UL4$L! A0#%     @ +8%.3F(TT8(5 @  <08  !H
M         ( !7S ! 'AL+W=O<FMS:&5E=',O<VAE970Q,3$N>&UL4$L! A0#
M%     @ +8%.3N%C(2<D @  P@8  !H              ( !K#(! 'AL+W=O
M<FMS:&5E=',O<VAE970Q,3(N>&UL4$L! A0#%     @ +8%.3ED[28*& @
M8PD  !H              ( !"#4! 'AL+W=O<FMS:&5E=',O<VAE970Q,3,N
M>&UL4$L! A0#%     @ +8%.3N:P0E^@ @  P D  !H              ( !
MQC<! 'AL+W=O<FMS:&5E=',O<VAE970Q,30N>&UL4$L! A0#%     @ +8%.
M3@Q(4/Y* @  J0<  !H              ( !GCH! 'AL+W=O<FMS:&5E=',O
M<VAE970Q,34N>&UL4$L! A0#%     @ +8%.3D7140T2 @  #@8  !H
M         ( !(#T! 'AL+W=O<FMS:&5E=',O<VAE970Q,38N>&UL4$L! A0#
M%     @ +8%.3@%9*4+- @  # L  !H              ( !:C\! 'AL+W=O
M<FMS:&5E=',O<VAE970Q,3<N>&UL4$L! A0#%     @ +8%.3BDIG?3* @
M!@L  !H              ( !;T(! 'AL+W=O<FMS:&5E=',O<VAE970Q,3@N
M>&UL4$L! A0#%     @ +8%.3L!?WM.M 0  P ,  !H              ( !
M<44! 'AL+W=O<FMS:&5E=',O<VAE970Q,3DN>&UL4$L! A0#%     @ +8%.
M3K:_?(%F @  F @  !H              ( !5D<! 'AL+W=O<FMS:&5E=',O
M<VAE970Q,C N>&UL4$L! A0#%     @ +8%.3@>NG<$/ @  B04  !H
M         ( !]$D! 'AL+W=O<FMS:&5E=',O<VAE970Q,C$N>&UL4$L! A0#
M%     @ +8%.3CZN,5[& 0  3P0  !H              ( !.TP! 'AL+W=O
M<FMS:&5E=',O<VAE970Q,C(N>&UL4$L! A0#%     @ +8%.3C'@NM*Z 0
M)00  !H              ( !.4X! 'AL+W=O<FMS:&5E=',O<VAE970Q,C,N
M>&UL4$L! A0#%     @ +8%.3DUL[?U7!   G1,  !H              ( !
M*U ! 'AL+W=O<FMS:&5E=',O<VAE970Q,C0N>&UL4$L! A0#%     @ +8%.
M3CPF)_T< P  ( T  !H              ( !NE0! 'AL+W=O<FMS:&5E=',O
M<VAE970Q,C4N>&UL4$L! A0#%     @ +8%.3BU49Z"4WP  \X # !0
M         ( !#E@! 'AL+W-H87)E9%-T<FEN9W,N>&UL4$L! A0#%     @
M+8%.3AW(NI26 @  =@\   T              ( !U#<" 'AL+W-T>6QE<RYX
M;6Q02P$"% ,4    "  M@4Y.K$S<=[8(   B4@  #P              @ &5
M.@( >&PO=V]R:V)O;VLN>&UL4$L! A0#%     @ +8%.3EJ 85"% P  XTD
M !H              ( !>$," 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS
M4$L! A0#%     @ +8%.3D;V7\ZP @  Q48  !,              ( !-4<"
J %M#;VYT96YT7U1Y<&5S72YX;6Q02P4&     (8 A@#V)   %DH"

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>141
<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>142
<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>144
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.10.0.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>316</ContextCount>
  <ElementCount>495</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>100</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>14</UnitCount>
  <MyReports>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0001000 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>2107100 - Disclosure - Goodwill</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/Goodwill</Role>
      <ShortName>Goodwill</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>2108100 - Disclosure - Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssets</Role>
      <ShortName>Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>2109100 - Disclosure - Accrued Expenses</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AccruedExpenses</Role>
      <ShortName>Accrued Expenses</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>2110100 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CommitmentsAndContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>2112100 - Disclosure - Indemnification Provisions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IndemnificationProvisions</Role>
      <ShortName>Indemnification Provisions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>2113100 - Disclosure - Derivative Instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstruments</Role>
      <ShortName>Derivative Instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>2114100 - Disclosure - Revenue Recognition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognition</Role>
      <ShortName>Revenue Recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>2116100 - Disclosure - Shareholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ShareholdersEquity</Role>
      <ShortName>Shareholders' Equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>2117100 - Disclosure - Stock-Based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensation</Role>
      <ShortName>Stock-Based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>2118100 - Disclosure - Employee Savings Plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/EmployeeSavingsPlan</Role>
      <ShortName>Employee Savings Plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>2119100 - Disclosure - Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/Taxes</Role>
      <ShortName>Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>2120100 - Disclosure - Weighted Average Shares</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/WeightedAverageShares</Role>
      <ShortName>Weighted Average Shares</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>2121100 - 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>29</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>2122100 - Disclosure - Discontinued Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DiscontinuedOperations</Role>
      <ShortName>Discontinued Operations</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>2123100 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>2124100 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>2125100 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>2126100 - 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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>2307301 - 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>40</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>2308301 - 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>41</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>2309301 - 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>42</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>2310301 - Disclosure - Commitments and Contingencies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CommitmentsAndContingenciesTables</Role>
      <ShortName>Commitments and Contingencies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/CommitmentsAndContingencies</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>2313301 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>2314301 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>2317301 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>2319301 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>2320301 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>2321301 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>2322301 - Disclosure - Discontinued Operations - (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DiscontinuedOperationsTables</Role>
      <ShortName>Discontinued Operations - (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/DiscontinuedOperations</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>2323301 - Disclosure - Acquisitions Acquisitions - (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsAcquisitionsTables</Role>
      <ShortName>Acquisitions Acquisitions - (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>2325301 - 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>52</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.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>53</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.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>54</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.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>55</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.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>56</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.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>57</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.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>58</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.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>59</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.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>60</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.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>61</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.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>62</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.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>63</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.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>64</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.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>65</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.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>66</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.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>67</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.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>68</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.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>69</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>2407402 - 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>70</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>2408402 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail</Role>
      <ShortName>Intangible Assets - Amortized Intangible Assets (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>2408403 - Disclosure - Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail</Role>
      <ShortName>Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>2409402 - 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>73</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>2409403 - 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>74</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>2410402 - 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>75</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>2410403 - Disclosure - Commitments and Contingencies - Future Minimum Rental Payments Under Lease Agreements (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalPaymentsUnderLeaseAgreementsDetail</Role>
      <ShortName>Commitments and Contingencies - Future Minimum Rental Payments Under Lease Agreements (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>2410404 - Disclosure - Commitments and Contingencies - Future Minimum Rental Receipts Under Non - Cancelable Lease Agreements (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CommitmentsAndContingenciesFutureMinimumRentalReceiptsUnderNonCancelableLeaseAgreementsDetail</Role>
      <ShortName>Commitments and Contingencies - Future Minimum Rental Receipts Under Non - Cancelable Lease Agreements (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>2412401 - Disclosure - Indemnification Provisions - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IndemnificationProvisionsNarrativeDetails</Role>
      <ShortName>Indemnification Provisions - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>2413402 - Disclosure - Derivative Instruments - Additional Details (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails</Role>
      <ShortName>Derivative Instruments - Additional Details (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>2413403 - Disclosure - Derivative Instruments - Outstanding Forward Contracts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails</Role>
      <ShortName>Derivative Instruments - Outstanding Forward Contracts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>2413404 - Disclosure - Derivative Instruments - Balance Sheet Location (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails</Role>
      <ShortName>Derivative Instruments - Balance Sheet Location (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>2413405 - 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>82</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>2413406 - Disclosure - Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails</Role>
      <ShortName>Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>2413407 - 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>84</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>2414402 - 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>85</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>2414403 - 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>86</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>2414404 - 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>87</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>2414405 - 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>88</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>2414406 - 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>89</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>2416401 - 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>90</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>2417402 - 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>91</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>2417403 - 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>92</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>2417404 - 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>93</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>2417405 - 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>94</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>2417406 - 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>95</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>2418401 - 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>96</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>2419402 - 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>97</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>2419403 - 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>98</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>2419404 - 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>99</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>2419405 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>2419406 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>2420402 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.htm</HtmlFileName>
      <LongName>2420403 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.htm</HtmlFileName>
      <LongName>2421402 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.htm</HtmlFileName>
      <LongName>2421403 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R106.htm</HtmlFileName>
      <LongName>2422402 - Disclosure - Discontinued Operations - (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DiscontinuedOperationsDetails</Role>
      <ShortName>Discontinued Operations - (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/DiscontinuedOperationsTables</ParentRole>
      <Position>106</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R107.htm</HtmlFileName>
      <LongName>2422403 - Disclosure - Discontinued Operations - Schedule of Discontinued Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DiscontinuedOperationsScheduleOfDiscontinuedOperationsDetails</Role>
      <ShortName>Discontinued Operations - Schedule of Discontinued Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>107</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R108.htm</HtmlFileName>
      <LongName>2423402 - 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>108</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R109.htm</HtmlFileName>
      <LongName>2423403 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R110.htm</HtmlFileName>
      <LongName>2423404 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R111.htm</HtmlFileName>
      <LongName>2423405 - 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-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R112.htm</HtmlFileName>
      <LongName>2423406 - Disclosure - Acquisitions - Webscan, Inc. Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsWebscanIncNarrativeDetails</Role>
      <ShortName>Acquisitions - Webscan, Inc. Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>112</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R113.htm</HtmlFileName>
      <LongName>2423407 - Disclosure - Acquisitions - Webscan, Inc Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsWebscanIncPurchasePriceAllocationDetails</Role>
      <ShortName>Acquisitions - Webscan, Inc Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>113</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R114.htm</HtmlFileName>
      <LongName>2423408 - Disclosure - Acquisitions - Chiaro Technologies LLC (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcDetails</Role>
      <ShortName>Acquisitions - Chiaro Technologies LLC (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>114</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R115.htm</HtmlFileName>
      <LongName>2423409 - Disclosure - Acquisitions - Chiaro Technologies LLC Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsChiaroTechnologiesLlcPurchasePriceAllocationDetails</Role>
      <ShortName>Acquisitions - Chiaro Technologies LLC Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>115</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R116.htm</HtmlFileName>
      <LongName>2423410 - Disclosure - Acquisitions - EnShape GmbH Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsEnshapeGmbhNarrativeDetails</Role>
      <ShortName>Acquisitions - EnShape GmbH Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>116</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R117.htm</HtmlFileName>
      <LongName>2423411 - 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>117</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R118.htm</HtmlFileName>
      <LongName>2423412 - Disclosure - Acquisitions - EnShape GmbH Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsEnshapeGmbhPurchasePriceAllocationDetails</Role>
      <ShortName>Acquisitions - EnShape GmbH Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>118</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R119.htm</HtmlFileName>
      <LongName>2423413 - Disclosure - Acquisitions - AQSense, S.L. Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsAqsenseSLNarrativeDetails</Role>
      <ShortName>Acquisitions - AQSense, S.L. Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>119</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R120.htm</HtmlFileName>
      <LongName>2423414 - Disclosure - Acquisitions - AQSense, S.L. Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsAqsenseSLPurchasePriceAllocationDetails</Role>
      <ShortName>Acquisitions - AQSense, S.L. Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>120</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R121.htm</HtmlFileName>
      <LongName>2423415 - Disclosure - Acquisitions - Manatee Works Inc. Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsManateeWorksIncNarrativeDetails</Role>
      <ShortName>Acquisitions - Manatee Works Inc. Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>121</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R122.htm</HtmlFileName>
      <LongName>2423416 - Disclosure - Acquisitions - Manatee Works Inc. Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsManateeWorksIncPurchasePriceAllocationDetails</Role>
      <ShortName>Acquisitions - Manatee Works Inc. Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>122</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R123.htm</HtmlFileName>
      <LongName>2424401 - 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>123</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R124.htm</HtmlFileName>
      <LongName>2425402 - 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>124</Position>
    </Report>
    <Report instance="cgnx-20181231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R125.htm</HtmlFileName>
      <LongName>2426401 - 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>125</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>cgnx-20181231.xml</File>
    <File>cgnx-20181231.xsd</File>
    <File>cgnx-20181231_cal.xml</File>
    <File>cgnx-20181231_def.xml</File>
    <File>cgnx-20181231_lab.xml</File>
    <File>cgnx-20181231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy>http://fasb.org/srt/2018-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/dei/2018-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/country/2017-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/currency/2017-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/us-gaap/2018-01-31</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>146
<FILENAME>0000851205-19-000003-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000851205-19-000003-xbrl.zip
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
M,VJ-)NZ<;?5:_79Z<Y^F,7QH.IU)9*G5BR_O#>(=(S"+2R.*-^OUQG'#J'H
M<QIONL/.RN?G[(A#&"\KQYMT-.JEG7F;U<Z#X=!-/AC/YW3CR'YIQ2CF^]OY
MGY=OBOEIW,I@/M/T_>=>_M(S65X@/#^4A:<XH%22GG6+98O%_(SL+>GTC85O
M3V-['='-.3R7W3V-ODKR%TY]5XO^OKZ]\<*9CZA^Y;Q26/D4KCE;V5V8R5[<
M9AD]N<'#XZ ?@V++Q^C:[?'#&,Q9VODE'?W4ZO8C_T,V>/#IL'L7KRCMO,]^
M';=ZW=LGX#VL[?O0&_SUM[1S=V[[3VLYLG#J;@\LN=+=C$;F+E+F#NVHBD:$
MKDB$Q*&=W$:$+EV$#K:O$KU@-\ZRF6_6SG_YES-S:!7IC;@\9\JJK_O+H-^9
M\>L\!"4Z<(MT@V.1__8#$+XG9%_-MJ4=W%6^G:]-4VNEZ6^_A>N4)B#\PJ7I
M"+KI'Q__N$YI L(O7)H.MC]8+TW);Q^O4YJ \$::]FWIW-^NU-(!X1<N34>P
M='__\,_KE"8@_,*EZ0BZZ=,?5^K3 >$7+DT'RZ1H=-,5ZJ8C6+HF0G"QTG0$
MG^XG^^$ZI0D(;Z1IWY:NB1!<K#0= 3<UT<M&FO9GZ6Y^NE*?#@B_<&DZ FYJ
M(@2--.TQAZ")A3?2M#?<U/AT%RM-1T#A37Y3(TW[DZ8&A3?2M&OZ[N)9J7>#
MBK.$'[+TL=7M)%\?@6=I/) Y*>TPG9'18EV'"Y;!0@SJN#47E,W9U4CNRXZ_
MU$KN]!1MNYV-T]D\-!*:'P^M8LN%2^+!JWXT.K31H><CN1M9_T:'-CKTM8IA
M;"A0\U-19I@WG=_QN"*;*P4!*I5RK$(P_)A^2?OC]*?!H#/\)1V=EYP^)RP;
M<&Q/8KN&WPN5#&H9?C@1/O6Z =LKT:UD/ RR%'H7[G-QR/"RQ'Q+G;AOL5[+
MXU>2[&.7)O!37'%$;?Y3VD^S5F]2[N6AVX]UQ:#1ES2WTI<E\2>FV#?B_2NM
M!+7=2E#'U_$-KCES\3\ZKCD%[7]<F5^LC7!V]V6>F;A7\OJ*)/VX7FN#<QJ<
M<RJ^['%7PL=TF+:R]CU,1UY;/#9MUL'AU\$&G+^B57!<O[=!/M>!?$[!K]U.
MTIO891.[/!?)W@[)-)+=2':#3II8Y E"E*/'(D]!FQ]7YAN_M/%+3V$5'#<Z
MT_BEU^&7G@+&.>[>4Z/O&WU_"OM2QUT%S;Y4LR]U"BMAL2X Z(>"<1-97?U;
MY]_CX:A"WN</AF&0_9+^9=KMP;@?;\/ZD WZ\&-[\H+2%1=Y(YBN?J>5=8:_
M/7;@6S BAO1YK(!XV'*%;=_^N/K'%;[M2=2WXOK2-1K/L_UPPO]:-2ZJ9/FF
MG?9;\,8/6?JE.Q@/>T\?T\=!=C;G+6J%[3G"SG,Z%XQT,Z.O-J,G99TV$('&
M0#4&ZJ+E7S3RW\C_D>3_%*)5S\A_ P$N7P347 1@Y73&[='[[";-OG3;B_?
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
M#A$)H&CGO6 ">T69)"QWCY7&OK2-BH&I[,KXNAOD8<!.(:R@4A%LA)%2%;N
M@B)76OL$H9UUX;ER=BOH$XQ25# B+08;C4!7B@+Z>*K=?G8$SI63NZ$?PBT8
M)6:)98DFWB0N*614>^/V$WTX5Y;N@'],8E3BD&0TL<SJ1&*9Y/SDP-H2_CDM
M?N88*D=4LZ_LB'VL(00I:P1GEEI*O!8DYX5$DI8B.H)AN;-E>6[HK\F1?2,?
MS0*88ZRC2Z*#("1Z)E-&6LQTR41? 0=?@GA"8!Y,"+9*,FNTT,CCPBZ31)8\
M/BGQSI#\+)FZ&]R1S@$#K;=@-@("Y(-ED47FM BEO54N&-=7Q=>MP XWV%..
M)0Z4QK4?/%4Y+M<\A/UL6YTG'W>#.@##8_(8=HPX<,,3L,A%[AA3 >UG[_\\
M&;H#T $YY"S!1# G >I@2I@HO''/R'XV 7?@)C0<KGEM<GL;S[9^23^EV<//
MK:_=A_'#,N_F!X<7@ZY$>VJ5,D8D!*R$@9_SZ#638(2__?$#1O]<)7&'L<P(
M*JX;<(.'S_'@7'?0=X/^L-N)A_7@ET]9JS^<GJ<LSE6ZUO#^0^LISFX=2;O>
M05>?.<R"L<XE"I:33(0GF$B,$J6)8K#*RL$#MH#P7D;C,ZP:=?L L$9++S09
MO/%NFE3_87+><W#[,6T/[OH3#BQQ;:_W5BV*$@>O@&B6$ M,L\PP">;1)!R
M"!%$@RBQ?ZYET Z4K>-5WNS_IIVW^8GAUNS^DPF%P/96O_,._MSM3=?F< @Z
MI./&,"/]T>*#=CL;IYWDZV/:'Z;#)7Y.2[%2,[[;]-9W\^M-?,W-=^^^>TX,
M$QY(0(X&C5VBO9 ZWUQR0091/OBP7@@/QY'3F8?W[1&1^U8'B2!<$:05$U93
M'8,TT_UG9BCEY;QW:'KM$\%^&7S9=$&LNQ^L;DH0"4%AA!,AG*<A&&T*&"D
M5)8"/'C1U[G&*2GN\WK!35[U$6%$-;B>1@8"2P46"\(HGXQ$\7*T32YN-5[O
M9+S0]-8B6,,#)Y)P:C%-D(\'R:;*R@.4*>TG8739<_$V7FB6?FI]!7P57_)Z
M5D/%LSN!"^=XHD@2<)*O"D.H(N5]$KJ8W/ZZ3)G-102B\;\$7O<%0#[@KIO[
M03:*6-[ NP?]N_CCV_Z7=#B:P+*RBR;7!$^Q5M+H>.0!,#6H<*51GH%DK'2)
M**5Y$ EF=\Z6[<>W5]+6Q843H22X"")H<,&!2&]8L? $X('R808MN=;[(6WP
M\-CJ/T40G74_CR=WDOX.K<PHZ7?>W\[R(DN> -#S]U9_-(@+ 'Y;I.WM+V%Q
M0P6#=X@2JC!1@5EIF9H&%QFXQB(L'JPJ2I#@[^:D;3B^O1 $R&,T\&F[GACG
MM*8^8'!_C2<>Q-$(*0/#FIE$+T7P9\0<BI)BCV/WJ6'&>/ 1% \.B *'0>:'
M!YD3@2VEU1?4H._$AO04P]L+/<_/#,'4.\G@7Z\9+*6$8PTS P /H)ZBO)(6
MR0]$S#PR\X*%8S7WH (X@TE2S&&K\RH7#NCC50L'?<<V(V@^OOU0]/S\,*\(
M*&YPAKA@DL'*%S3.3R)-U O5LK;A].Q S32.MOOD2.HI]PH[HI) 1**UR[6:
MDT*B4$D.V9"<Z>#V0,OSTX(1=SZQ"4D0##MQV" 7IT7+F$O 634=F\Y+B1!H
M!U\MX,13&$RBULG7]GT,UGQLC5(W^6E8CM?)/ 199T/CZ9585H.RX,&WP]9Q
M+>+Q<A^X0:54",X7(-,6 ]L/,6H],6!5D$X Z\A@G15" '4Y,<8@6MK?? /8
MZ*74+.QP75<]%HI X)4D-,'*!Q0(UL4Y"T<HKJW'\BS+3HBY1ZO HH/!0E%-
M$*6)I^#(^#P0&1!UH>134H0879+E39E<*J;X?G2?9O%6ZJD/LYVW$2P!_<ZY
M4I)2(0#RA2(PX8.W)4A.$5[0)\^-Y06#7N=', YN@4-*<$D",)IYFR.&Q 9<
M/NU"&.'[&#3\X.#W[LBULNSI=I#]U<I@LJ9:!QR0FQ%,X';\!U&)IQ&9XB8!
MA,HHXKJ(10A&RP%L+ 1;0\M&0]P[A>LFRULC,8B8XDD\BB0-=Z*8+ WXM5R;
M2&&U/PK':<@&#_ECV^K_^;P[OE@NPW)PZY!UB@+BL1[';;_IZ*6V8.%*J4S@
M)BTLZXK/;S<T53\TAU$ Y]\;*A/JE4, H?.A1>^Z%"@0\53A9D.;;5#.HB#1
MEL;H2K\-EG82:XFJ*4M'\6$>KXI3U._\??!Y:-JC#VG6KMR/%"5(0!;3Z,!&
M!1>,L0 SP=]T0N=1:X/ &<"5.&U&T_[&_2JL*$.])59@80EQFF'/%(J[7$EN
M4K15  $K64'%>;*B#!0768$498G3P7%IC:;$>%:P @0_F I6O &QH ?D15[0
M]";-OG3;Z:1VKVT-TTYT%:#W2CARNC/K!L/1T+4>NZ-6+_[5/ S&5;9/U"]Z
MBH,2GE%G)7,)&&UE\Z)ZH 2"J:W8M<?QO@X/UNAD23QEL:Z6)4P2RYSCN4\J
M ^C VFSPL^/!&N4/J%(RHQ)KB!0>_K$NEP,%!JN^YM!!># <P0A':0=LR6W:
MC=LP<7W!;[]-(K%IY_WCQ&6&OYA>#Y#63=KO#K*?6_W6-'/A6=*7E %E,6G"
M2^R5QX0RSO*R#MX*0ZHC8+B(2;Q\L#O1_2**22"6.B4C<(+I16 47&X48_F
MZI@24CM07$_KU\?N-.%D*A+O;V]&@_:?TYX?>JU^G4J?)^Q&G%:JF#^3Q_G;
M2HDSB L+/A6C7&,:"UPBF?LHEH/GDBSE8#T[T!E)8 QB[AL8A479SY4_H*-/
M@X_IERXLC1H&5H0[RMAF<<URJ[@# FRPSDM&G/#Y-'IG B]A24H7D/Z+1WM(
MNLM 9@E#$W# F-!2T40G@A@EB@4+Z*9<"%9(>B9TEU'+(MT1FD@)$%V$J*@<
M947 Q1J8^-+V)B;J((2_&\1-TCQ[K/WD6P^PNH>3]9AVX//C&,/\D TZ8\ Y
MXZQ]#U_]D(%UJ$@P7;A:<)B-_O6N.^K>3=/3H--"!M?/R:?D'S^W1J,T6PG)
M -!Z' Q;O9^RP?C1]5K#8?>VVV[-]I 7VK4G@QY'!95GNPVGO>$OM_8I9I&N
MO'P*\"8N8%1?MM6+-U#<W*?I"+"<Z70F>]6MWCRN,K1/2R.*&[^]<0=X53V
M.8TWW6%GY?-S=L0AC(?+R<OI:-1+._,VJYV7IJD;1_9+3!E-W]\NS-[2*W\:
MM[(6S$[Z_G,O?^DSY1\941@1K0 F<9X8;)CRA4PB)DK>.%TL,/4R0=I4'KL/
MG\?9<#)_[V_?I7>M7DC382.+%R>+6@2+@L/$HH1PS+D6A5U7BJ%2*=+%>A:[
MR]!,#//$:Y\6>G;F'2XKV=[T:7'ES;;6SPD6XOD8C3 &C&X=<KGO:D-(7#E3
M.MJ &9T[#G*5R'E*1)S R6;6V_Z'5C;JI]GPOONXB6E;R1 P"%G I8!FB)1@
MN3@OR#+,B6H4CO@R6<\-:TY&MQ_;FSL@UJ8)"%B\I>K3P*>WW7YT7N8;<^O
MZ"(8PP#&G!+&.DDM@3:621D(P5HFW#L E007H'++SZ\.^^4BMAYH8"^$( X4
M.2C$1'JI;*[411*,*1UPF83PYR*VVR#G1 [ZZ=//K>S/=#0_97)=6VLAUE P
MGJ'$<\:-=PG!Q44=RMI2*!86RT*0>&,&GB#+C[;A!N;"!<%!W6!B0CS(KO)M
MA2"(-K7GUW=@]M+AO:N2:T&P,N"%"J6Y% @<6%1L&6,31.T%-,^R[(28>S0)
M3CSU')AJ-,4R<&H5R[/2@@'M4%(:G"YN&&_.XOG.9FDOS:>/63K%N]MM6^K
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
MO'#2&AIO+RNJ7TA'G3N/=;_"[UT8YP _@]K./J931!V+FI?910'A:R6]Q8X
M(O-Q*[)@U^0RIS,0S^(TSIN7GLEY$;]CZ#P6;!BELW-N979[L,2 =< W5SA(
M(BV3Q1V#L<@QR:O!->S>NUX((.>,2<J5P00K)E"15.UPS,0$SHOSX#PF;R;_
MWXSS/_W>_1U$<9S%\HA[T<B;*188+E(V)"P6.D32JWAK^%32B>3, +]5P^]#
M2+H/"ME8K0<QS**CF!3A/^NL8OI0%G!VJ\R'5A=>D5_:MY!7O65NA+!@C)R.
M12@99T*A)"ERT91RI2 4$YC2E3COLT-Z*0%KZWR#4VZ4HL@KC4'K"&U=OMU)
MM*C8GR6:K.;\;$E $3,+@^S=H'\7B_]-*D"WIRFXD_A::W+PI\:KW>!&-8YC
ME6?.&/))S&@7O@@N(Y+8<D$&(E<<]EU&>0 RG\G7XDXB,!(4&:MIT#XF@^>K
M2!A+RIE.YT/G\E'J0&+: "4<>VEAE15[;6 K<46ATP.2.?PTJ!'XR8F,S^6[
M0J?ZMRAK/CUJDY?\C0TV+@ZW7.B!.$$D1> S(P[*$_/BRDN7@*M<"DH1Q%?W
MEPY,TBFP;]O 5_7(GLOLPHXK'J^8)900 = 9V2*-*+BD=!C^VJ;BF>S:6/V1
M>^ (E4IXA W*LYHXQLZ7+ZJA\<Z!JV/?JTARP'&76B22^EBIF3J?ERKE6-O@
M2YF>US85SV5/:^T3!^*+% &8E%!?I$$X@3$O*0*&D497Q[Y7D>1X2XV/2!5
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
M>DR)/;_U!'+Y<3KY;7JU\H4_K/'_Y3.H4 R20+.*V42D:R, ,70J).B2U9&
M?;2AV<+QN.QNIK./=/ ;/],MZ(=^;%;%I.%3^>,/L[7#>_MAQ[=TO_LKWP>N
M;C9X.'2<(B4%+B'S+$O?BDAK@747^!NAMKOT,S/V(F19@^1><CAZGI+4 9SP
M*7ODL@L\MSWHO8%][N6W+,KS(2Z3.3+EE8V)D 9H2VAC?1;!6!'J"MQ]7,<?
M1W&8IT+#?$:9/,,R_,<ST4$;I7UP%="#WHJU?Z53J$/5WEP @X"!XE7+,FFP
M"ZQ-  F-NHX@WOSK6FES9M-"80L"$T(JG23ZJ )9_?)\BBB",_4;X+^\5I_#
MMI36$G0 SAGIH@%RO$"GP!VS'D2]RX$S]4I-_"_E3V\_O+V]N9A_;I:K$4E_
MF7[\5"5^".J=.8^1DB!( TE)Y04WB5E-YEU%](EEH>L= ] ;/7E:"3RA;$^<
M5/OAY_SP;=@!!;0^^^0%4]H9'JU,D@L,7"M3OUA(]OK$^N/\]V?06&%]21>D
MS*1.2#(M0P%(8WE6)IOZ0?DL0B76GTZFY]54(1+FD G26<\-1TM7G*0*U@3M
M0N7[7I8X[ZSR<.W0";U48LZ%Z )P*(,4E(5V7[-(6@=9MWM*LT]R;Y"YD\O&
MG$<VZ!&9T\!-$$KEI(PH.(J)&%QPOBJ:YDKLDYUY/MG<#3#T7^_^^)<I_8S%
MQ:>O/S9?FJN-I_N[S_PPN[Z]6:X^P'O-QP]^Y$^K9_[5K<B+YG]N2VW6]I_W
MX)/+7\J;U()X&NTYU!08>V?* P_C$FUDI2!90PJ.UQ-:O^UC@.<ZAK(KJ+RD
ME4N@@2Z'DZX<@U*.1ZCMQ;=]#/A<QU 68WEM5M/52VZ4R<2Z?KJ<H>YHET*\
M)--T!AS0V^E($58@@TR6&J7@J"UV+W@&>>W6P.[SGGE.^>S5_G*B)SW(66=
MK<!F0P @\:@T9\E9Y,&X.OF(ZK$I@CY_1TIIW_+JD^-T'G06BCN)F5DT26J9
MN^9<&71UXQ0<C06V5Z:=6&A[:]=CA.9X)F_MHA2ZU%\D;8"53)1E),D8J^"F
MOR[T!0KM::)"%<!%YX%S[WV,BM!/-X7%*%GWZRE^-"K?6W#DH^8?9Z5PZ(=+
M^O3TP[24&*U*SM<"6#27;O;PO9&^=ONYN0R3Y2?Z0J*/?)E<%7>W1;)XEAH&
M[8-42:%U-NM8@IZN+L@8C*G>$Z[TF#Q/*(9G%'CWQGV.U^T<K)$V8S0I.Y(Z
M*M?V#V86-*L7P8R'3Z]!Z.M+M/[DNT5S/9E>EB*QV;*AS[^]^=0LUE][,N5'
MZ8PGKYX0?9(A!6G;>@PRP;EV7=R,5QF<7SPO\7S.4VX6N=#<V\19D(D[1&O:
M5TA-6*,^GU$?^2]Z..?.U$;M1-(LJ:Q"S!3MZFY@7P*$RB>//G#^*Q[3.?U-
M:3:2@9==O($\#&@(+6A*$1AN>?P9C?G^=8_H/'$Y&JX%4"P 7B(#X67JXO*0
M>:JJ!$91[3=R0/13&@(F])U;88&[_;BO97-_?5]X>/^G'\?.0GN&)J-43M$)
MJ!B,:.%9S#:H^BS&JS1/+HR7(/RS8+)('L.87.8@< ;<0;H;R*)EJCLE1[-W
MWZ+HSP.W* @!C@8%IFBR20&0=Z(W&*K';,G^!85_3C]MG4\Y<PHS6." 6+:T
M=U7/*NKJ*4? :&',MWH Y_'"P@J4'ISFUB3/?'2\FX9@*%JO;H" )\*R3W<
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
MKTECA)BCZ!XLM55J-7*"1QT916J0NC&6.<A4[WBWZFBZ-S#)J6YL"#Y23.Q
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
MMG!!*^VM5@1^"":7FO_N29QQ7HT X%SI?MG:_:_?GZR1"A"N!?DAD^FVKGI
M(N:NOC&7<21UG[@R_?328\@:JW@77,8R"4?9,NPJEU$N7=EEB*QR^24)N"]9
MB^F75<O6*K0.\ZLKTLG%Y.KM;U?3CZN/_SK_I;FY7<S*?H.W'SXL#ZW52J61
MQI?Z 8A>F\0Y=C+E1&3UDKI!]2.H.P-[@T\YH"$+922+/AN*6QEVI6@\^/H-
MZXSL_3POWT+&YG-I MP]CV0=RE]\71NE]C_^*[A[^_67YO(C.=G8+*<?UQL
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
M/1C)=5BN5!NK>;"I1$I<@C20NUPI9&7K!II=7OX!!8\C<?PY8C6%937G]FX
M[EF?';+Q6@3+9.3><F55FPGWDMNZK.),DAG*#QN613+)D7I"\M9ZKW.'T"#H
M _+#1]/XTDY/1>+495UF\9?9FD9T8[Q<$IMCO$XEFJ_W8T!^F7[\=%,F@- U
MGWY^[/P5S;0NI1F0 95B7-PMJ94^Q/HA>I#\/:@[ WN#PVA]])DGI:*/*7,;
MS!U$#5GX*B5_4O:FRT+KE%S!Y=OK9K%2MK(4J5TBO_7K.Y,LI43A1]*0]>07
M^HW- XW_*?V:_N]/DQNBK:?N]$NNY\O)U?>+^>UU:!W"%L>UE9CE^KOI;S[X
MK\6U#7O$A]=RA40OI^NJA/+#K^;+VT6S]%\W*%K2C[BZO2P7<BL!#W9F3)?]
M!/J]. H)MYO+[M\W-S=7S>7]9_K?7*;6KG[AQV9V,2V4_4P_9-&\_7#_UU\W
M0?;M9#&ATVGN)_!LR<0_'&/H/%,."'YQ%\A>>@:NFW>-B<FJZ>D-[S?2/D:'
M-I7PR_2RF5T2KY\_%T'-+_Y1U/7P-8PZ\A2YY3KZLNA/,]?VCHN4C*Y7WDCH
M>ZL=I!Q#[OUQ=TJ8_N=V=5,_7\]G!0[U$/;-I$PY2Y/%C$YX_$$O&('!>#+L
MW"6*<KN%?+%L7MDRA?*\/(_,)TO"6Q<84P(XT9%TP(Y<&URL<!98AOKLY)[W
MB A7,I#,!E#:(]TUW?$<L.#II^9Y9%8;6F,,)&1:\8PQ$BAFW1&1>FT9(&[Z
M(WW.0.Z9C\A$+A,!?YL]13;"1N.Z6P1!5K511_+\;O)U4H;!KRKAWC6+U8:2
M#<X+:+!_Y?=<W_ZV;/[GMK!==KK]^O6ZV70EFU\?&\4H4^ @D\EH551.1:VZ
M)5O:1MWK/NDH7(UXE5NYWLK1$.^13C$6:+)H+N/DZT_$>TDJ_&<SV1SH'$\C
MB ?EO]*$A"%D%0A+:D?NHING$:R%,FZ8VS<,WW"YF\\!ZL>8?ONA#/==/"G3
M1FK/R3UXE*@EW6AENB%='&/@]TPS/LST#NH?,MU=N4X+_&0YO=C'E\/&#'=+
MUH=9)S-08$<(I=LX61P(JMT*:L0]!UM)>32M*WS[2[/L#-#J"/I_=_G?M\N;
M+9F9^R\L\WSQ<_,[A8#EKM!O?[>8S^B/%ZL?L&G&[C]$9F]V67:>_>WZDGX7
M$268K:_Y0QEJ31#.N#+;06<I-+D5DBJX&,H,-H1=,GQ#M_SIA?C^HIE-%M/Y
MNT7S93J_75Y]_:6YGB^VAK@/N2P3/@*A/F.B3-DCC\JLN'2*@(:0 YIB3L^D
M_BO_ZVZM-I9L##>2.V1&0?8F$@32FJ /?7=_9?M#6D&=@U88H)5!4I;':*0M
M2PVC!2]7M*8H(/"PFU;$<]"* [2J+*1S&6)$4.2NK4ZZT.J83L$@[J95VG/0
M*@9HS65/G(Q2Y1P(7FF=UG)U92\!2VG@5O*S*,&0&=8@#'@1RY"ED!AXURT1
M%:2[5NPBEO^)P;EH?6UFN&SZDH)B,9/(&O,R58,7Y^9BCG) AF2%V9/+\+%6
M6 G.F301O4C,N8*O3&'2>Q'H"K*G510S:(6=Y5J&R "$<B@CG4*F&ZB$XZ)L
MUABPPOP<M Y9X<P<9\H8%\C &7(:"O2*5AM1F+S3AY_'"IM!*VR58=EP8;V0
M.6;%O!)K6IT E?UN6H4^!ZU#5CBX@BXY$"3RB!&Y=W%-:QD<%@:\VSD\<1V1
M/Z0U::4B"3&",4HG<A_=-MT"ANU.N?(_P3%RC=.KVYO]EM1L6 +GZ$8E'<%'
MDZ3AP;<O#H)[;?, 'AO0V):8(^A];6Y#E&Y_3;@FDY72VA"B6:'WQ+FT,0ZB
M]^<1Y.,1/ N9L<"BL]X[)H&N84'P&8"[?F/3AL8,W,5C&!U&\:Z\+R85M),Z
M1')Q68L5@L-H6.H/\]VP'?)<] [Y$%.VD9>69^MMDC$)9V!%K]*$[L00DA_P
MS<?1.^1'.&J?*:#++ MN5 )&AJ302[9$:3D@7SE@[XZC=\B7<.:\!JY$0!^@
MC'6!M3XX1./[.__V1O1'$CQ@HCFC6Y:94$+GZ E&9-TY%!Z-&G#4=B!D/I[>
MUV:BK5<\$%Q@(1'J+4L&R_A */N:5]/1ADST )(\HR ?:Z*] X-D.()0S( #
MNIBA<,HA1.W[\WDV-&8@P#Z&T6&(7\P&EI[3$G=9;Q1"*O!.2:.RW)WZ&H;X
MQ]$[9*)5&:N@R[XQ8YE)#K,Q:WJMS(&[IS?1PU!?0MF*#(1#LL; A/'.K^EU
MDMG=20R"^F=R@<-P7UL3/6%^YR&X'%9#'3I]X+X_YV)?N'\DO4,6.ADF';)0
M@M*L**A.;<)>! ?]LIT-R#^0N=U&;_M(G_YY\6DR^]C\4G+\JV4];G99_E5>
MV;Y,KHKA//@]GB+_6,J.F K,Y0PJI"Y[)(BSZN'S#:+<7'MP"'FG8VOD#5LS
M[ZU:%1E85!ZU35V'CB//6K=U@!4O@*N19]]H9$ 6&1)?& 60\G7-*AI9'R66
M.A!F\81LK2I$2ZW.KY-_EN]<5[C<DO[>E]H<&HM"X%$0-V5#D4Y.0>Z6M%F#
MS&U?8,AYGZ5]2#L50\/(+6D3RGP3#0+H:E%DC2URLU[Z'2OT4#PG0\.&CNR"
MD#99+RR+44=INUW-EDR?@ZT,,7T>ALK3YNQB>K7>,N=N<G-9"NE6E5LW\\77
MC0_OHXN]=9ID,C*W6@ 08O2.ZZ[^W7$9U79>48[Q>A#59Q="K;^])9"E*,DP
M'0PS-G-3$ASM@G1O@PG?A!#&5LR6&4K:@G()L@Q<>@H7VHJ@"%[GK4* 4;MT
M5B&$E4W_8?9@ ?9ZDDR9I['^A5=7\]]+=>7!9IK<?B)+ -E*F6+(VLC6"(1D
M] XC4'F>D]'_I*(9"=6Q[&0T/$3+7;8.4+3VT8GLXG:#SPZ\+B]5-,.NPTD4
M&'2,B6*ZI"%@-^&PA$Z,O1:M23/B9O63]W4K&X@@:$6A@A*8-<O%@O#N[I"1
M/;$4-DD]%\/#-R*$!"$I1M$]2]DG*;LQ6$9*J;8M)N_G6UX<Q\.*+IB+,E-8
M[3D#M 7\=8/;&!=Z^T+RYSGB=A;,QB?BE+ZQ#$B;3JX.U6Z.%&!QF9R&C"P+
M(TS;?&2RWFP\>W#8?!0?'D;U^:4PK/*$C#T%D1$YS[DL>HK8JCR%,WYCCL #
M*<"KD\*(O4<13=FT+22 D"'<A=V68H6MV^C+Q;?/*X75A, 'N>G#;X!W2B4T
MQ+*(FB)9UYZ]37([UX=?_CZ1IV=R6,%5F?TNK/164 0H9%GJU\7IS/D=%NY
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
MC& )F4 ?,QDIQ*60K<LH6H8I0!VP&?ZMB6ZG>=T5FI"_"3[J& WC'@."U-T
MV^Q\=5_1K ;]?U-"&P0VNP;_*EG$E:0MQ0\!'8B@=5")4W@'J;JF]J5=TJ%X
M-6A$;:UQQLB"3X"G]OVT]!/4FP4D4_REW23SG$:\3&^A2X4NJHB8@) O='-S
MA:P?4*7N+3)_O?([UHAGK[/DL.I6B"R #;);/!*9J"=JJ_+8_XV)[E CKKP3
M(G$3R*&5P7\1@NWN*^'H5V'$CQ7:$+C>A1>B+<UNFNRUYQA()#EV[:-\LT=R
MG99[LDOZX%O:]USWX:99E(G9F;[AP#TQ961) IND\TK)LFA<=UN.E+85FQ+W
MUXT10A_/[\_$WJ^_-U=?FM6X\ ,7.RD,A 2]BK;,\N%6^J[7C[X2=)UPU?T7
MI:.(?3S;CSQAI9*P7/C,M89$X->U-E.5/<!5D;LU^YO,W30>R>7\=G'HH0*@
M-$&"$4S+D#*3W;XCID.]4$S98PZU(_(X-G_]1,;H,#Y%*)U,J,F8JZ M2U;?
M5?()@F25\K)>!<DCJ3R2T=_G!RY? Y8<V"R%M"$3DT*T169&0.R/KBK6U^R?
M*-A)XYY,?K^8+P_<!.@2 ^'H_\OB]"S1>G872=%W5M&G8AK$O@RMZ#F:]N<#
MQ#8J)&>CO7$V$23AT-W=J(1-%2 F^+>W3C^C;(X%N[:4ITIADE F9W B=-FR
MA#R+ZBV>5,N\*KD<G([@!9$P[7+B":)3XL$.(5*)HY#L"Q#(8U(-#HVA.Y/*
MU!>F8@)TZU0#RR*#KOS!:@?4DTEDR,0C$@+39>A 9B$@>"*M.\WD947Y4YO$
M9\T1E('^DA-RR64;/!VF":8+=#W(RE\\L4E\KO@_1+K1)C ?H\K!:.%4:Q*=
M(O17[V1]8I/XY,$]@7L9K8QE01]&@, M=*XS8OT@\-0F\1D"=\G($IJ$3&)$
M+W/FH1N#E4D^M4C.8Q&K'=UC$-'X,DB4<*SPWB:A68!NG59I:*^KY)'O'ZGU
M=EL_@N[GLX6:14=AJPS61H91DJJW(4]TG-LZ@278WK' ,\GE6#LHBU*@+G5C
MJ>P55'>OX*1"#"KW8"7;.SOUW"(Y.+])?".//)+'=-H!^"Z_Z8(C8#2PZ?CE
M2N$Q4)!B2\-]S+R8_K*#QJ0."CH+K'J8(73X1#HQG-  4'2GHQ"K>,^$V)91
M9<5B?\M6:0[BO56S9Z7[^<P><QR#R&7\0@@^0.FG[ER[-*K*:('9/Z/U3'(Y
MUNPQ9@GU!2XY2SIKKXL_;ST!HVBY:I]BZ@E5_&G-7IEI'5;MUXZ!M737C>G4
MPT16!<.O0@J/@'L0G;80@_,L2.F]UMV38#1H;56(S_O5T_L+8SW$*]PN%F5#
M>G>O5Y^]J\&^W_@^(IWN&_S7NS_^9=HL)HN+3U]_+/=C0S!WGUD7<J\^P/L5
M=_<_\D$E>%ZL=KCV-KIOJQF_KP>OZLZX8<8A@5/DA$QE8%FT$"PSQ77?%OW;
M/Y?3_SV;7OV?[VX6M\UW__:_7K(8X>QBW-D=X>C2JI"M4XG"N%C*^EJAZFPJ
M?]VS[H>)<8\3N.\ ^#:U>5<>RDN"2R4G;[4KD[0!NMW-&E4==XV?P: @7_Q!
M/-M]**MK+1-&H%#"<D^HOGV7S<9%4\5YO!_3G/8T?EU,9DOZ?G+(WT^FLQ\I
M]/?-!_K,KY-_'KRT(@?EE*;[GD(N-;Q<YS;9*;/B;$L+_.!M'Z+M9"R-M!DK
MA0$%&"?IV!2 (Q3?5F)3H)ZVK'90+X"IL7T527'E2G\:!4=6&BOOEE@%S545
M6+\A)12G8*K[XMO9^\E5\_9#U]1YL*894<9+9)D,J@3DJ3/KGON#-77F^ W(
MS6S)+DH>1^V($D5/0")'@O()LV$^XET;94(9*D1_-CI']$+FLC]06636&P?<
M.KC;'(\^5,W>1]+YPVKVR=ZC73?O9=1EPD;$,LZPM%SRU)*J! 13FYI^;FB
MF$?3/&9+R!J6]]_,+&8@"5,HT](L?;5N?;7\YNPDCV@$!(D\>E)@IWAT&'.W
M8X3^@MG*_,F>\=N7Y/G\\O?IU57M]H>ZD[TFAQF9$RX0L.':Y[9M3Y8M?5C)
ML[3W;6;!N]^['RU#>6T-7%@1@I:8=?1&ED&)K5N7">H&?H[ S!'$#&6;HH3L
M%)U:!B"]]]RQ#F/8LGCHE,2L#PG=[4=D^S7KN[^^+]4H[__TXUB?/B;+(F#T
M2N=D(L^D7&UM ,^^[M/G:/ H+MY>W( ^]6P';9,&*<H&I3)*2B?HJGQ2B *J
MIQJE$8[A0L3F@MG]N/A[\]OR8C+;9V8"VK*)FFE9FDM4 &6[.@UIZ?K5U?[R
M*"9^GG_95Z'"I^ED,7_8JOGCCV&LHH "44T@7 <=@P[<YM3V&"6K-%3L@.V5
M]Q_$C_XKN.L%$_OQ\Q_3.'W_=7G3?%Z^_Y,;.QCIT26*X()"3?$U!JM;RY.2
M=UM20P;QB%NR9H7#.8;-$,B@"QPT6*>=YQEM[.KA<L*ZHX0+K?;F9$7?HKF,
MMR5*6T\Z>LI).A1!E$6@4&95IRB]E99UWBHQ54_2V<7<-D:>AN'#%-/F M X
M1A4I&LQ0>F@ZADLIS_Z*N3?'LWYV\X?/UQ0.?]YS\/'&7+ODDU=(@$8BL6$
M":UQ9C./TOK^YOCO_BQZ$\7WH6D;#_N.%CO/'"*9@P1 **9=6R]Y[C89"H"
MU3/C&V[,=KLX/DIL56?P;C'_,-UK:/>FI6! (1^S)DJRXLH;G;M(Q44IZYDK
MEB+&GD.Z__4'4O4:=BWWWDQ=$ F :;O*9017]GX 6:1$ 5ZH"HK>*,W-N85U
MR#[ES?(H)ET@7^>RYQ8$ 0WC5MQ$ EK95SHJF.0*CV:G7FS?GRDER4BD8$L/
M@J5O";QL,M<ALRBV8&ZF9*^:[7%4]7<C;YZ\U))E3H['Q>0DH,QJ154F!PN^
M]J@H;:_%YW%4]3<@;P;"UK#(P1D5L>R=RA98H<J4,6A@J[F'W&K;-S./HJJ_
MYW@SIT1\:ZEY,*BBM\QRKU=4B90%%_6.#8HV+#L%54.6#J7B5E%@2^8N9V_
MI[N6#Q'BECY*HWL[<Q]/U:NS=-Q)M,4#9 9 .)@LG"W[AF4BP,7K<ENZ(,<;
MNA,NCM]TQBE2>)*X!R5%T(),C"K,4-1B1*RGKY''AMX2Z,>P4Z^'W\2Q.J8@
MO"UM=-*6 5-EA:"6WDLL2&_+1$CL8Z-'435HZ Q]*#HI$RJB2%*@JN2:*LW"
MEO"42\WL\8"@7O7>&U*:;42AN+$4^2OE!=HU58(<\9;83".JXPU=O="]ESS7
MABX3&0D/TD4$)<2:*D*Z6"^$H7LG3D/58*J1*R*L#,(M4Y*,CDZT<:R(UF$%
MN,E:EQ;I/:A:3W,O:<CUI.#'+<?>Q"#@F)'(<W%B2C//L9M=5))L=8DV';S8
MO 3C5!W+P]@N=N[ DL?C,=O2=)!=EUTC=$AWHU9.@H7PQ#R,O5@XT(Y;+\I;
M%IT%8U*U,::-8+=TT%E0^JP\K!^^'JRLB/2'Y<WTXM#)ZIEC!A6ER>B9#V4
M1;>MD^#\EDI'M'BHBNTD]FP\#T?=@:PW*); $*A7]/_\;MT0BYE7/"/#7ECW
M$GD>'I=.<8#0S$4Z59N%5]J+]IQUC*PN[:5#%H=>PW/QW+X#'ZK:9$=L8CX&
MS,A"6H5+[3&71Z9M4)O^[UB>6V+/Q?*P9H."LJC;43@F2_-&A ['!^]X74@
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
M[5_0[&D#]F:BO**588Q_G]Y\Z@9CW\UE//A8F%;@?(S"0>).,V=16B7(W=A
M$7V]!$W844<S2.%)F1LYK%5?$PN<)5*V),%X%COFG#)59Z1"P+&K<P1SL?G0
M+!8;-N3P'&*40B7I0]*EDU*(*-M$N&9!0.V$+*LBHW&R3L#'B-XE\"GR@LTR
M8^0^">QW6#.1CZF,VANN1]'^>1@9 \WD7H+7&<D\.ZW+EF_;O<>4+]1QUIBG
M>30;OS1?FMEMXV:7G6*ZRR^E<J#,RX_-]7PY?=00Q)+[4,!=B;>29?1?[4EE
M;J">@J)&HYJ#"#XK[^-.BS@/EC,N2$?+U(VN*$:2/ZN0!.\O27[)O(\HMM&!
M@V(FY1)31>1ERDA;EYAR;3RYP"I==S[>2RWJ[&:^> R@RH$A@I?&<\/+)IS@
M<W=EO:^7)+[AC$#+"&\/"#J"\K&NAYA43)Q)D63BTIL(W2._<@&J> HU,V/F
M_S2$CRA3]AD-#QQ3,@0Y$*WHT!^DQ.O<B+)B#/WM3?AJ TS[XC?[&";7TYO)
MU9YIR4VG5;+7$H+46GFEC<NRFQ[ ,P5,6P97P1C\VT7<J5@:F_P2(6<="2$A
M"[+DY[L57\("0:6:)>!C^._<+(V%?S8Q.B/.K!#>03!WNRV5=00$JX>&NNGW
M) R]6S37D^EE9_2ZO=VSR]6/6^_%>$PGIR7<%VU*7O#D0+)0IJ0(D\FBI7I<
MBX Q1+L/G>?@=&R0<6DQ(02O*""A^Z630=]QBM)4P$HS/F8QGHO3$85-)@>!
MF6"5#V30F4M9KCDM78.A7D&FY9A5.9[3O\THI+DJOKK+LSTB<\$T5[+TYOF$
M01L94Y<1IP#,;^EI&0U6MI!U C[&8*"EC_B2N_0L1 K!9.Q>N.D&UE,UR76-
M0:'S\#&B:%XE(85#&]$F'PC/VS8QIE4)E"M%8V,W:I2-M8O^6E8#+3\UEV5P
MX[KDYI=FV2R^])D8FX"=0'O'G&<B.ITSA<)=0MEAF2M4 2!N3#\:&27I: X&
MQV8+ D Q!T@LN427P/&V?L^190M;M@SS"GL^CH.#UVCFX TO*T M"N2, .;=
M.A=RI/7,$*4M](/;^]^]/TU#XK.$(0TY!!)69%X+O^H)7=7W"L&VU$D@[%*
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
M%I^YB]D/%I2G)B[&&+P@&GS])H5L-1"FC'(WO7C8 NB#TV#=P@^"G:HX HY
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
M<J+4II(]8CR6 _04T->-76?1"K #.& J9NNT4+2M<?))EBR\"3OL"?1U([+
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
M<)6+1 >NDV#GI^S-ZA2 "4HI;KV1C-IDC,T^3[%DSJMRBBJU2XHDSP++E7,
ME:+**V9)P%UXX.GEMG!8.:&*.A]#U#FJ9'.T%( EP.\) O](A 6G)^@F!:"X
MM,O80F)NZ'D2;.<4 /:.@69GA./D+N,<5],R";R6CG;)0!LAR5D3:7]AEO/2
M2<? Z(EDK'0@=;6]UP0TC"EGX8*%6)R]^;QHLVF8Y<#@*Z-5KL?M*O1S9$T8
M"LZTHF7F@L@S-2L'"[/ (KF8M8V<D1@@9/"IT=9XWUCN1J "ET<\4Q*M#[.
M#M%JS$,X3S+#6>_M3:OQG)1SW_ETQ^%S),<68985A*<HJ/,Y$")Q>4@M2*!G
M@F:ZG$@$ND><7PYP8[)L%&99B+N)@<A3DAB#QG+4.%6[#&RW6[+_5%NUUR*%
M=U6O!Z_^K>I70X"^?^VN;[O][FB,O8B?JUU;O[)*CG"<N1,@7O1<R-14:E/'
MB2JOJL#CHP^%8#/(]H'+NE72U+AHK<#]C2*+I&1H9FD)^&PJ.9<1S<R)<%GC
M68-'+:EW 9<"XOQO.AN))DRVNN@%8F#SK'TJ+DM74S@<I_RQFC;)W[^E&7GM
M?@<7K_[G[]6HOINHFQ;IDT>8U,\L1U#<WO4&7ZIJ;D-&.:LD,&*LR%A*DV@R
M+@F5-*YP)Y0PLSB^99]8/S-JPM-O!L-;W%<RW592CG0@6L?$6(9@5J;,)&L;
M%7T ^1$XZN KIN7242&[<Z8/G&;J<$J*Y)H)W-G8#,AP"G@4J"E>J+D99T8F
MB8D6O%AE/(E,\-DD?V\-4SALY&NAY=,Y+V87A#-)"&U#U)Z&=LF13LD;<NZ<
M-QT!\+H/UFM27WK7X<_[3YU^LR8I#X8W57=<7;_N3[]W1V+BA3&XR>-F(>(Z
MOS!KYB @#\)R1;C34C=7-8D9Q>;3[^T"1K('*F]/C:,>P@00_4?5_?@) '"?
MP?OX6/T-5S)$\,-SISNLEV,>ZGS8_.V(REPFC8LC5< K,MKN1$LB)+-P._)@
MR><QCVDC>AWG!.OO'1U5ACP#*3)1A9PH2]Y'*F>'!&&7.I4,/23%*<A_%C+D
MO/(X^<\:8C28#6E9J^*PL4.?6H:V)-EQSO&G0;T.K;K^:8*T73T@?A]"%#4(
M"PY0X%;3J)QSM,WML:@?%&ZU0K30&GPT8IS)"9@]GX#,0&F>0U(JBVPD+F1H
M3@ '6>A3J;'34G]+%;8GT9C77]1+94Q(0NEHE8<0UK>2(4P.XC']1?6WA!_U
M@,Y-=^UP=GL0JH=G9[+C/&(]!_<TT5E&+W&>%F\"CV][SNWH_EX#<U3O31*?
M+#@"Q',2@PG<MNOH<. V]:<T/ _)<8HC. L/SGKB B.>42HL1*@&'()6 _)B
M2MH)-."6--O+0<Z>YD:CR>T4#DR)(TUC]W/WNNI?OX5O?;2';^><S/TAB?E$
M*Z[YC(IAC6=4463IVQI8AM/8YPZI7QORJ98S^SB@36EQ8L+K@Q!>8F,VURZ0
MP%R4&CR%=OD,EYP^1GBQ#PWV3 C_U"SD<L)S""<3ISJG "$_N,]6M(M, U&*
M/T)X+K\FPO]]T(/']$ _'EK9S%L$5L__Q0UY'#PKB%MLZU<%9@1;3GI!#TSX
MA[0X.>GWIV[F29_Q_D<(B$0,#LO(]RO9O8L\NA?2[U7AS).>6&6"%X0'0[QU
M*1C9]E4(T$%J*>FY_3I(_[8[^BT/J^HUD!J\\/&AU<V#)@7K@LRXWD^3&#-6
M%S5[ 6*P( ?+-3W5!Z+\,E*<F.[[TS4/8C,3 G8:1T.5TMERWHQY%SX+(QZQ
ML$S\>>B^/T7SH$_4J\A#ILHDED3$2BK17DWK\&"UY3S=#Z5I#D;W:4;QS<WT
MAGY^1GX=M.V2'MJ(UO,#\36N\]+.6!*5$A9L:6IV-9D(]'=+\@_40@RL)=L#
MN==08"]4?M/:BVIXU1WAXU>DM!\OCO-:4JTB^-F2:Y^#2;," *N7WK()*=5^
M,C6/H7 @^BQD$)I7JI^'W:OE.<M'_>00P$L#DA$3)($@1=I&@>J8U>+X__O,
M"2/?VGUHT>U0VR<UYVZF<6'-'W?=8?V$M5?#CW=U:"S#9TH*C?4ZV6);=,.
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
MH#U8,Q8,HTX)#K(LO;+8K-<@#\S.BNP571SWMQ^XCT&)=64ZDF2IA,C&"L_
MCHEVQ(+5G+DBN4 7!SD?C1+3#[7/;6WEU@A'%Q+$=UC$(15-(H5V181AB9>I
M([41NLN!VP"KMQ7.]D$2/"#4#YV[4?7FQMU!E'6%,0!F)29C^-,/W=ONN+,;
MVWN(^JC28,C @8-W4TD;?]\Z"WY<H>0V$_JGX'!T$JUKVV1:2:+!UU699(B(
MO&R';W.J9=F91]A&FF%?-,(RF>G@L5YO\'NG?U5K6'AF-?P,/U[_<S(:U[[B
MV@+DU4\JYB7^"IH=PE+  :"<BTW7U4T)!\$PBT8;+P1)@>2&GMX(7D;OKQ:J
M>3?&]RR(5+[]S4VL;BK0>L@,;C2JQNLH%H.TD0A!:12<"0#J?H>-9KX0TA,2
M2Y^"HX21.FN<VP$N6Y;1&M^XIE@N+HIL\<*5S/.BT5X8BGIL#0U&!>Y)1(W6
MU(.Y0*0Z)X8RIV HPK0%18\3Z:G >)ZQACX0Z@E9JJB%90O/BTC[X"C)6-:X
M584E0;D%7WJ6-TQ@)(_,4;[3PS^M+EP[#BLQHP.H(^' H=(D*/ 9VCT2-G!;
ME%YJKK9@I0;1TU)F'_RCP))Q$ZD-T:6L;/:Q<0H<$(T6Z2/.I#T)G=31.8BK
MP$@D6= (_I(WBK9SZ /!6OO2NFVCC,Z",OO@H,2XR=J)Z(A141LLWFX$S3EI
MBPRL6$S!'HM.JVXUF+(J)1-!5>A(5<+,6G/6F&LD9<OIPG3#(R)Q9#$ BXP;
M]6PR!DXY&);;'C 0 EU.:'N.I-F''%#+LW ^"P_Z0?F0LIA%])J7O7*2D]-H
MTE679E$2O-KEN/+*)N6\;G?V!FD>+A2;'K82IQ%F<W0Y$#E)13P560-EP+7*
M;?@<)'BJ98G7,R3-/N1 $V.2%=11X@SC0231W- X9GPHZVOHPJW[GND4/G6&
M'W'$>QB,QLW,]Q77,,?F*F&5,M%PSHFT25-MF^I41[5/10Z4;64\'\'][(BW
M#[X3.#DC!0X>B&6$H2O2JBZLBBT'9<IMLA''H^1),CD^$ZNYD,KQ0**6F4K1
MY@9CI&5EST*7VM=!O'VPH8F2)QL9<F-(1#"IFNH\JXS/I06E=INPX7BD/$D"
MB'$OM%#@<UJ*MW_@?JMV+3LX3.68<76>?'CZQ!#P6B R.9NY8U0(Z=NA]#9!
M2%/TBRW.FCHP)>/L$N9,##%$JE;;;%-F)D0>I:/MOB[KHBENF[9BO'MLSX%"
M>\D[<@4!O^>>,&:P?<B0M@E?.94+;_ADI#J).27*8@8A$@TDX=9QV<[Q#>#F
MB<(7V2XE<EXDVDL6DG&1N2 V62L<KQ<#--PD!>>%T3P9J4YB%#6XLKCUCCAO
M*+!6T&URRF)^JI UOM6MR'F1:"\92>(<<!*/SK&4<:9\:#,Q09!8.!%/)-7"
MKK#ILO/8[4UPWVD]?F]^6??L6F7KH7(2[+GUPCO'8R(Z1ZW:84S./^P?F U5
M75S"LB.L!T%W384,A,00 5-0C=;@$%4G7)N232H^R".TZ"JV8)7/"=UUFY9\
MRA:<7F<YMRH3'=O3!3<D:;4$74D6;AP.A2Z(X",/V9J)B6;*4R]U4M19G J;
MF^).D9,7RTZ5:D'%!N?Z.)1[17 -VZ:8K&242R6I(=YH$F=#XUA,>2F"..3@
M;!!<PZB.*T>2E"%F'XW!X89-F:*TPLAE$WVIUH*H R-8?,9W1MVKK1E4">59
M2!R0LDD[%6-HI]@X%]RR@:Q4$Z4W0F\YC'M$;EWK"(X$D=DXGL&&N$! V[0C
M>I06RYF3LX6ZG5,AMXXQ0]06HEY-H_4^:)G:>D$AL5EI*7*,\PUTZ"KD<)[;
M=_>MJ6]N0F?T"?^'77J?.[VZ7Q4KKW&+>UU/\1Z=OND_@)_O#:Y^VV!1:LPH
M;^@@RQR"\MS-&CTT1JW?_/O_[(V_O^Y^OAB-O_2JOWYS X]\==.Y[?:^?/>^
M>UN-+GZJ?K]X.[CM]+^O7QMU_[OZCI*[\???_,^/X^\7/M[K]JM7GVIJ?$<9
M^9?O[SK7B/BK\>#N.W7WQZ//P+\O@\$-NYW>TD\AM2XOKN#?B^J>:)<70.F+
M[CW=D$BC;KV'?G!S,?Y47=P,T$U#+?:OW3[\93 9P6=&__8=PO$7_*H6J+\
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
MO.8TV_\[ MD;7$] WW5'0/;^Y ;,7:TM0$5TX*W=X?6KN\X0^!RMY!!>A6,
MJUF3#83@=?\:K/6HVZDY'QXR]S8\B,['834E,'S19Q!.^.J/_>J/B]^[XT\7
M>#L :KF&#(YL)I#(.MW!]90;>IW1^-48C.BK#Y,O%[43B%KTIG[Q]T]5OY7+
M+Q<?JHO.W1U8]_J@+B[^@6H5U,H$7 I$Y@%X<S#]GPF<POC+C!@U$U:@*%&9
M@*H YKD"]3*9ZF9X:M7_" H."0!'6('R!SW3?GCN8:"X;J=(P"_ Q,!SJ/^O
M>A-D!. N5%  W^T M.I@B'_#TVD$I];$<&"#R?#!2<R=TW#T_<6GP>\5P'AY
M\7M5$P%Y_[H:HQ$#\2G ZHY&DUJ7#0>3CY_P^T;5([ ^%U8/C7&\FOF.%YTA
M(@6H]<=HU(&$J 9NAH-;8.L1@ 9^^><*F'<XY9XN&D84?F3]S@C^12X<=N$$
M:I+,G4AM[-%PUAH,^.'UU#+"(0#@<%[P!1/@PB]@9D;#R5W-T ^^^=44G@:
MR^8,YJ!O>/D.WO6I!F;Z\1[(2W]JU*8?!6[Z_5/WZE/] <!VTALC3]XS"'(4
M\'#GR^@>*X05O'L02I"I5B'TP3V=/A,0:NGY6_7EHB;*$/CSJI$*@*B/P<\\
MO#4):Y(_A'B$#E/U$3Y;4Z1;(<2C"0#<&;5L!EA<P"F !_"Q?AD?<P-^9P=-
M/WQ-HYNO*U1G"&ZC0!J^Q@-P\Y1N_)3F"*;H 741EWN([Z'H+.B73K\/&O^J
MPF^_O.BC3P! P//A72AD-S,W\D.G_QM^Z=672T1@ -\SG#+!97,>X!0 ,I-1
MK6H:RM1,<*^7.[=H7VIST\>/UJ[3^&+2O^E\!@<,P\>:"T?-\>*! H9@%>'+
M/@[!C,%W#3_6MA+](1!!>*%V2FL7=#C\@A]!=W TNO\.Y-H;5!A([4F__AX
MLO8WX(_7 #K.:6F(6'#?E']',Y7SJ3/UL\!P-,<$*JL]H'D>G?+= (A0<V7)
MK(A$!ZS5:-1%F-!.(R*C3N]9J*,U\=/J('HQ$-XP?IU%O&"+J]O^S(C^C,9M
MA!_>)M1U@F=A4T@R62(I)5JZ::CKM<[2'C74K<_J@/GK!8I=W)-L+ZQF#FWX
M$HCUW1C56!W<3=VV'SNC4>?JTP0"/5#-O<[OM8&!5U[!SZ,%#W"FI<"9!KGL
M-@3Y,@LX02$,:[LV1 \<7'30A> ,CVOC,[@!TDVU-@:"MW>]P9>J*KZC\Q&=
M^:E'WA_5,6']V.LF$,4*$63-?N-\U[YA!3A,;41UW6B]J1Z!!P,P(XQL:XTV
MZ'U&#Q]5>6,"46%4P\_XJ=H-K7_"OTQ]UAEJG;O.U32ZNECDA.XTANA\[G1[
MM7:L88+GW]7) =1@<[!U:A4_!0\(B8[OAPH<T\[U/\'3FSK+M8ULO+L1?,-U
M]WKZ%5>US?XX&(#1[."W-!8,.[@'4]7\ =S0ZN;^$9V&3IU1^^8/$ 7#SZ"B
MZ_CYX0$T4>EMYX_N[>1V+HJZMSXW$W0G+^XZ7]J\R/WQ00C4NT9_I.&56H/?
M=GY#RP'J[=Z%;&0'B3?I-QRY+")&=_6>!^;-X=5@-%X,RT;5C"UGX<'LN]#Z
MWY_\Y0.X:ZI]KJ;(8-;DMGXJ$'EX@2%H=>\=/ 0>CP7?BW*W'Z-S<$W0^*"#
M(7QE9UB?V7!4(_AA,L)\R.@A;= 80W"+VF,T!N'M#*]G.N1Q:B^3T]K9 O/<
MALSS9A^X$22\.[Y_) K_@W@?P_I9<JO6+!?@^H$O.*<EEG[K?3QTUQDW&FKJ
M@Z$8U($\1#P(#@@<QCW]&_0P:L?NXJK7Z4*TLRC4B,MD5"V(SVQ0M_Y^-.]V
M'ENF/E9]3-?-)RD'X(_^ 1^& +(:X[E/DWR["!T\Z[JZJ>J ^_?1!$\)U2P8
M$3C;AEY;">:+7.X@EYW>:- (YF@3@:Q=\SJ0PS.!_W]4[)XL<A\&U],4[3]Q
MKDB3*)C*UO3C$$QT,<!M@'HFLM02&1'J(LU_PXP,4 5OO6OK.WO*4B2ZLZ3Y
M'?KET^RV>^B--*DG?.#'JDGZP^,P[+DWZJ>4UC^O@/XZ.UQ,1BYZ3@].>M[*
MO9L,X?0JO#*Y:X3DW9?1N((GQ.Z4(A?_^N[UN_AO2'[W8WJ?_K]+>/?5MPOR
M/LN/#JNI4]H(9J_;^=#M3>\=E@@CPM!J$. $H$[_(P!_A0R#(G@W[$Y3G#5F
MP)^CQF>\@I"ZS@IA? _(_.\)<+NZO(!84#:<.1\&S$/^B/4?50WL]1W3/=3-
M#56=>_\PK-WYAKC#JDG--9< =2*W,P0HZP_>XFU/<T4U=P6W 2C3(ZII6IMY
MH%+5N[E$_QQ]TA$Z!/AE4UV(^ACO<3 3-$>B:4;I ]"@=NV''[I-$%[[VW@1
MV)M<3U4D$$T53D1[@FWB]4'N<"J9+88=X!K@D9ENOJP)-HTC'@9IMU/ZXM=@
M^O&A6FJ.:YIS;L6QH75-D3GLVGPE7GO. IC+ADVZ'R9](%%=I]#<'LX= "C?
MZ35) RWFVH>#/VKM $Q4R/L.)2R<J4M"RO['[1]U.7>K...W^D#A5\POM@2:
M'5.;H*OS;8U)FI&DMLOS=)D188XP,Z'>.UV$/#19AE7W]@/Z)K=-%KM7?02\
M;ZK9;2UXF(V!:=^R#\R8H7M"K19/M-O#1CJONR/,=W7[$TQ\W[49^U9P5QNH
MA6S<^MS:+ WW$^:,JS<W;V;?N'W!B0N1)2&CB<R9'"3GT;4%)RP[?;0L7%/-
MI!:JY$Z91)W2%_GOGL)/]C4>P?/@52G-9<9\O46WOI2H.M=3.U[?4 X1W5LP
MH0#_1>->M-[S5)E?=>YJLM0)=-!87_Z[?N.DKG>I[4][.U)KL3J%-4$C"&[
MN#/Z;32O&8JT_-SU91U>M#!T1S.G>RMQ6BLC,VEZUUR\OKG)=0CP8[>/0<+;
M^G+H+=[*0Z24!\/F2?V//U2@Q)=5AFT@=M3XQ+,CB<JH><[$4S(5.ZF]B.GX
MR>^#,M^4B!AF@"6K.:<-&6:96KP?ZLYY/*U#S,CW;YID2_WA?VT^\6^S-]#O
MV\O& ,>+M8Z=6>'0-(9[(,%@9*8'?'$[/>&+X12Z87/&C;_3'_1?7:$O-4W+
M]JKZ3JWU^*8 =S#&Q<J1T<6_UOG1P60$V(W^[;N=]<0&A_F@K)BT9X>^67_Z
M^_Q#^RB1O8?GC>^9/;BNG01?LM=KWO/7;\@W]>\CS%HWOV_/AK]WK\>?X$?
MJ:E'Q:J7SMVH^J[]X?O%^M)[H.:;<&8UJG)IN]7F;3Q3D(SXE_5%L$O+<:>?
MYT_[.'WBQY_Z^>T^_DP:HU84;YM=5)=9=I.WQEWXSZHSO$A]U%\15,GMAVIX
MWW/ Z>6^RK]?VC+NP>4G&)NPAI:KN1-OVJOA0=AS6HQ7)S)WJ*%_UO/:]CX]
MEM##][N_R/&?;^H6)WN;&?DR<NN\1F[M7P>QO8UG>U$U7^,@LGUKE#^OXC@C
M&WU8C7+X<2$OJN;%JWGQ:EZ\FL=U$'OQ:EZ\FA>OYB@CJE[,](M_\S4,Q3G[
MX71G.0UL+1,_W[DZRTE++QDSIR?OV7#E.<_?V5^]!99PC(;CN2?^O9W[X/K7
MOV [^@TVI[IFQD+LCK X%;YSFY(-:0*-CH9(E21"BI0EFY9L.$LI$0<OV3B@
MW+P+_Y'BKS^DB]>O9X47E'Y_\7?WPZ_N_>LW/UVXG^+%+_\_>]_:Y#9NK/TY
M^14LG^1D7,5Q1-UE;U(UUXW?DZPWMK.I_0B1D(28(K4$.6/EU[_= "E1MQEI
M!I1(JK<J\4CB!6AT/]UH].5?5W__>/_KQY]^M*YN;C[]ZZ>O7YYD%@IS>%F8
M0]-,G$.S?]I A=?=7NG!T]QI[I6;^RO#HFCN%9E[]4*ZUFS?O4)F-DW??G&;
M7G(*[!^2=?20*^*>"G%/K]Q]D H/WX/!/9]G0KQ%R%139"H9=8AWB'>(=XQ3
MYV5GF<>/Y=^?X8HV#&ZY=".A"D]65T"K:QJ<71[)M2[ROJ0J>SJIY$2CY&,1
M!$#$$HXM'%D_J^+2)*\DKX5SV\V$16/N+:D:AR64B1M54HH%3\O$:<9VEV:B
MD[B2N!Y-7,LG!G%HJ7H+)1Q:%K]!$DH2>H0-%]:\J;8KMDQ;?F*V)YCM><0E
M/B,^.Y==_9VJF5C"@1VVGZ](G$7I;!*BSY[PUBSB8.$D:*5NNOB8KZ!6C)25
M-]G;<(_FSURU(5DRV"C,5:/Z5Y!U(,2@Z&Q?97U>]!Y4-?J^8"\D^#).HD ^
M7=&.,JN.O!T[(A&K0+C2$(LXCCB..(XXCCBN/(0CCB..(XZK!.%*0RSBN'/@
MN%<68W*.[20HH,ZML7())(0%.^-.YDLR5K"DN!F;%@S'[G2-249=*GX0 A "
MG T"M+MMDG^2?Y+_,Y7_11FDIK'U)QP@'" <J!@.7+3:+=.S7C)Y959^[WB,
M\H%#<42Y8&\)'<X;'0@<"!QVL,:0P.&\P<&QN^TN;1Y6YUE4O&8=SF**[Z)"
M6S/S^%J*EC5' -[75),OB8SU>\;,M5*L^BF]/(0QA#&$,9MW]9K&#HY*L>J$
M,80QA#'EPI@"#J=*L?J$-80UA#7EPIH+QS'FQ'J6'.?L_"X1 )W!D1DA4&40
MJ$_=I0ECJGCR5@IV(XS9[ZS.8,!_*=:]7(=XM3NK,V83T_:20AYJ$_+0:U'
M \D_R?^YRG_3G%XD^2?Y)_FOF/Q3UA3A .$ X<"%N>QI.AJJ65Y$64Z RD&.
M<P0'IT/@0.!0ZJ.;<I#C#,'!8(A^778.5.)^ZUVW?,2CB'O65_;=^H7Y"<-V
M3=:5#UL:[')"%>N/L&6CNI-%['6)XXCCB./*0CCB..(XXKA*$*XTQ"*.(XXC
MCB..HXKU5+&^K+Q$?M,:^4T[=JLQ(,\I(0 AP)DB0+]!)R<D_R3_YRK_%'M)
M.$ X0#A .$ X0#A .$ X0#A .$ XT+4=ITD(L#I/*D-/9>CKA:^E*#I#Q8;V
MH47;/D9-Q;I -:$,H0RAS.&T<&QG0.TN"&4(90AE*N5E*L7J$]80UA#6$-80
MUA#6$-80UA#6$-80UA#6E#YVOQ3K7JZCN]J=T%'Q^1(#;\WPM3HPVK*;'4J!
M(@0@!#A7!.AWC,6ND/R3_)/\5TS^*>29<(!P@'" <(!P@'" <(!P@'" <(!P
MP&C ?5T0('>.\N>8#7V^]?K<W^HBR^6^GZ[T7]XTWJC/0 $W^YS.(L\<ZL@E
M/ZVO8LJE]1-_M#Z'4Q9\L';-;]L!SZ/PXLG[=G\?]EI=UOTO/OB,Z1"F\$7
M+R=<@:33;/QQ?757H*6!TWPYYV.WG=?R/1ZAO6I^Q6'9EQEWQ4BXUB-(";\,
M1R/Y:O8_B,V)JT_"U<-:<_7]QN0.?T88P5 #RTVBB ?NW.+?W0D+QMR*6 S<
MK?Y^O:QDU__P9QG%[[^X$^XE/O\T6K3CN J\?R9 I-$<UO[*=<,DB.6MD*X?
MRB3B7X&&UW[H?OOK[W_W0R(OQXS-WF>7_<SF^"YX!'P3)=S[NV!#X8M8\&V/
M@/4+<$T^\]%?WMS?8J70?[9__7K[QA(>?,'<^/*^,>CV!DZ[[[0[MZWKSF#@
MW-U?=:YOV[?]1F/0>O/7M45_2KQWK?=3/+-=*[Z6:=3'1_V:8>A[^C$IT:R[
M[S,>R&<6>]]!=TV->66(/!TB+J$4,H:OPI$53SA *+9S@;=;%R* ;\)$LL"3
M;Y]N[G( +&U;M@VH4J(N MB5Z,_YAP9A-(7IK:SL"KP9TR=K(]<:8S!XUV]T
M&MU^L]F%^?4[?_PP#"./1QC]X[.9Y.^S/S80:[M"6L!@?VMIY/WUB1Y@%T9T
MH$9;N=]YY>TG?OTY3?XP^^)DCH;=BKO_LCU9_U5NAL5@>\\40G^UR^%I6KB
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
MZP&[1%,8EZ?/@U4\$8NB.:ZO;EB>1L;L.)/&PU(!S]+GS< C$5)*/0Y(IY\
MW/%?'H4IC?75Z@09E'<TU@>N>0;=+\8J*V6SC76_Q/"/+E$,P_\T2UN(RZ=#
M2[*_?_AS(B_'C,W>7R<2:",ED&LH O6,6R&Q0'82\:^P6M=^Z'[[Z^]_]\,3
M=\B?85SN7,4MP"V?^>@O;^YOL?3R/]N_?KU]8PD/OF!N?'G;@J];3K-UV^G?
MMJYO;P>#F[O6H-GM.\[MC=-[\]<UCCK@('8;SC_)D-T"&5(]U\/JSXI"[Q.,
MB\#1Z.=E1+3R5#0B945.:H'#&\(%8C+AJMH2R\=]6+\E,(R1PF@LYCW,INTN
MIVT- 7%G,U\)I([ &($89#%KRYOLM.!VQ!6$21W.ED8<+0)"@M5(HRP,2;>!
M%\$L2>.39E'HPD-Y&B8R80\Z_D/?.M> '\212(:Q$G %$1%GV<#"),:'K1<7
MSPY;$42W35=:21HBDX*QU%.= OE"3\U8/T+APY89ZU@-)):,^4R^MRZ<MR!@
M6+A\M*!A2H_(MBZ:;Q?+M/)K^EZ$$[BJ]5;5*A\'XK]*\0&%IIP!"&3WI&\0
M;*E45ZF.%VVAO(:VB_93S\]T$=!RA9CZBG3>SPY@V[)KP!>1Q4$,I@HY1X#-
M&K854^;#(G,D@:'\@P5LK# 6=20,8P:KMU"0&S2= 4?!+@WCB/#IFD^FH<=]
M73!IVP T<4 A>*%:T-!&II,8Y(;B$B13;$8!0QR!/(61M%,M@A>+8(0A+W$:
MDX21<9Z2I4#UI("/N7$P[T'(,%J=%8QVRB*0=AP<D%7("=!D.3P+V3==?9WC
MI2;)@"-SO0B8Y8'"0([-"OB/@#_US#.%N';W"C_#6Y0*GBKQP76;:3G)4TWF
M)IY&9*5F6'K=,F88H BT*_Z;C2NC'HP&=.BBN4)*:$V@%>913\>XV><Y*$<(
MF-PP18]+YB'P<H09+O%MZ>69J;'R[GQXVI"KV$ [I;T$#%=-#I )E^"U( M,
MZ?_X*MF2-#82W@.$72<@SP]3B9&4VHQX%/%$<3F,)<,[7WSCOIB$&3!-!'_
M867=)D!5P O"(%V%!<$C]48U2XD=&_3#U1,QO$Y9T4)^6SY4,63*+7GR:GI)
MOM(5XYF%2U$#J*1Y305 PZ#!1A(P$344L,O@84B4/+\ONC7@'N*34F<IZUZD
M#/9V^T9BIS5F63_F[.P, 770W0[DP9_P>_X=]=-VCE$J-NV9H78;>$F >YBI
MHC_2=3^$1)KG]#7N<>0B9C*0>J1 !*RAZ!DP+E-3,6]08IGRJ\##?^Y@L+ 4
M2$A]W<("W<.V;-UWK]N#]MWMM7-]==.^O[EJ._=7G>O;]E7_=G#;/JIMZ31/
M9UPB)6T+_]_*$53K&BP]*V/%JM4P-_\!Z *6 (N^<81 V!TE:7<8!!P^A,=Q
MX$[-U%JXPTB,@=U\;,N2_:+$*.(<]%(03^!S!% D-:N[/@@#6JFZ30O2C2_I
MMNBY)F.6*H2E6P#E!43H=FT<.X<Q1@-2R2L+5@>D=Y93IBV*U9%COQG<Q#\Q
M:CF!(5VB20)$6BSQBCK$.0'FYX:YV!!G!I< &0L\F:4!J7D %F;OWS73K>->
MF>IB!ILC]T-DI;6!PYL^*K,K-[K_9=/9A__I-YW>!VG-](X3!JKO4D;4MK'Q
MT0@4&NZG<V-3$_="Y?A G#73MBHVF;Q3#>DTP?@1;OG0T,FBT=D#$SZ:^9=@
MX5Y*AO9^*H-YLVRIN&W]WB2 E_A*+L? CUJF_% JNQ"U(X( ^VZOZ'G5LPV;
M3(')G>.P3%I03^LJPL"$<"'H1.2ES"S I[\%9KW;+ELX9)7-@CL&):*I%:(!
M"73.TC)2LI=M+E,'$?XP38TYF '(CQ*439*!0>!E^ZK7T&F%-%GAY#!OSWS>
M>>NZ%W;S=H CE/;EG%,@7>RIU?8_,R)5=SP^%<D4;:YUX8:-B[*0D<I+"\I>
M4,!EOIOXBC[+;8QJ] 7F]&(SF78/TYOOU:W\"MSX8BJ4.<^B. !.F8B96K!(
M08_,]NQ<K_3RA<IGG&[MA]QEN-?9!6E+^,,G*IQ7TF( 4SI_- %,Z0+E:9!M
M_#,%,F'H3<:]*; ;NM87UFGNKI59I]R1\NX(<"-0O=@4P N>^5>VN6S%"LWP
MU4/.@Z5_5CME[65^%:P-R("'+E8Q3-)=9I2S^]GJ*J3;5JF/!4(7F ^&8P29
M"[4/M>&TW.@#T@K< .]P?HLX/VVY394B^K%($U5OAW/;)OANX0A<^@$##9R7
MR,.@WZ< 2"R:YYWCN&**J)':AWS4[)5[L'+_Y8<R7Y4,'/BJ+;:6)J:VMSGG
M9+SJG1=RZQAQ+,%BQX6D6CHWP>I6)SVK&\<=#P*\7>[<M(-CZ8KXJ,?/ETZ:
M="G6:&_CC=E*+KU#.)5X/N-:6VCJV)F3TA-J#XY#3X5V]1(P;,>HJ%,=E+]@
M*4>8LJ>P'60Q0U=U)5 [>^S:SV$2I7I,X_#2EXH:=O4]V%0Q<WR@  )0S/&Q
MJ:9:UN^'_3S:EJ/$S_N\@()7P=IB9M3AW@[>&UD7XJV&'Z?;^+".7$LUO+"
M5VEW(?*W"_52X+_443+77(E&Y89EK5P 0YZYOKRM+X +$*)6R*%< :"K(K[&
MZOJPT48U"</:-2TOY#(U<S/'3OKTYYZ\SCE:0@\C>,X[!I>FZ9\K2Z!'G_L"
M[!H7T!G!> C#M//#] 08\Y'2*T,>/R*3YJR(;/293EH%DA4ZK_IB=IDZ,%UV
M*(OMF#%,T<[&JAQD/'4,*F^:%MC4C+I0YQ^I63?9.>D5Q^+"2Y2Y7^6Z4Q%3
M$=,<[90\^ZSYVWTHE7^BGINOH0?>K!HE*RE.@6_S@7D#_$^'F=T'NJ/V<C2M
M>*;"*9A]2BGB?9D+$LV2+8>D>[BH!FVGV[KJW#=O.M<MY_:^>W?5URZJ]OV@
MU;\_OHNJP-"@'/44BZS0S]CV]B@.M>5,JK$MOY*&*A_<<I?C&=02GUN.*@6Q
MF=)T^,-7C;4)\U::J2]RUE7,E]3U'? ' V_^@^/8C4'/5$4' +K%:$7:VPM,
MO2B< CS#=C^1%GSII4=0Z=G)XFAC?:)3-E>(C:%)OC[3R]')MF0R_$^JRO4U
M?GH(R /FQXLM4_[);DX4%3SS%?,+72QRT2V[&BR>/R=&38LE&1;G4JDEG=-1
M\*7/E6X&192>@2SHI'ZQV#CBZ2$.4$:91?%B_3QUHA5/HC 93X!.S<["T["Z
M]V?Y+:UZ\-9%U[\HE8'?@TKEC[#K#6>IHR3B:/'H*A1#(&'F0 'KB/F+EN>)
M<FTI?3Q1AU'SU,VO'J]L;C!?HO"!9QM:W=]<*NLY2."->#/\DQ[W:"DSXP[]
M0]]V^EU3,B:,.$*,(9<)^F !>5-UD<S19[/;RDOH@TQHAD:-0:-T--HL3W[X
M8PQ%518.M/<ZW )#7:;)-,.+K"[1,III%4$5,!9;6.; F5>TL,Q@\*[M=)J-
M=K?7;W6;G9ZY,C,=,V5FVJ^K\](Z;96:U]Y_A"HU)TTC7,\@Z;\$3?K;-HG/
M;+I^Q>.NNP#=\EMW(4]O_HNM8?,ZZJ+W#9TT[R?" \@QFWRR(-$!]%D,M_5<
M@N9*@LYF"DX!M'R:.]&>Y5$A[*DWTLJEM2\I#Y-NH$E)4X=-Y\."Q51\BS&2
M8_,X5XJ"&%2K:Q]:].Q&O_BN237,L=P3J6L&R,W-#3793Z^VGVI6(J9C-YO4
M?)>,O'TQQ5R_C_)0K+I@4Y=J.FW;,=>RCBR;VELVQEJL$=C4UK)IVH,M!X%D
MV9!ELQU3C!5*+!'%J@LV=;%LFK;!9KQDV=3;LOF*&2QL%/.([!NR;YXM[NM0
MU?G7 0@I;+)T3D.X0JJS[EJ-TI34+&79UM<<#%:SGFO3[K6-^?Q?3M_2L"55
M>CU^ZG(^MC]\#'3E0.'K"@?>?YB;9FABC+\;1IAZ%V.A!>;]EK H7O1^%%*E
MG<-K?)V^/<.:(ZKZ #:.#+"JUN,D5+F?;#,+0#U#)6ZF^0 J0Z+97"OYAXDK
M;-G>DOFY1R^2"_035,+;3QB.CW7=5+;%>B!^FN)F,@X?C$&'XO"?HD^[URX=
M?<H5A^_8 \R9*AF-S,3A6Y]71$]78M*E0Q8U>->+FV0U+)J-#]L+Q2TN<#X<
M6C)N>\2]ZMXX6T3< ZA?ZO0O%7Z^ 5X%!>#O OF*1M<;;=M*\?043T_Q]+2]
MIWAZBJ>G>/HZR?&Y'$BV&N9</W0<6>OC2 HAIX/(XR+*^0)'B70T!9"?#]20
M54-6S?E9-10^3E8-63447'5JV2'"%4(X"JZBX*I3!5<Y=K-I+"J78JOVU4<4
M6Z7O>K;*L>GZS(5W?/XEK<[J^DQ,TV8T?(SE";&[*\>!R*S'LH_MK5S5^ 5#
MM'2#0QU^ &R>1+H+Y:)E*\9/S+@N18S]L">J@1'69<>6M7S"_)%JS1593'7"
M62GW_\ZR_CT1((N/JHXOUM^?89%W5U\5)K$*%EE4@YVR&*/65+^((?>Q(6+:
M0"B8+[KVS1<];U1E8=4:2$6GX>-5_UJ&#^)(+6SXR7%*NOT5CAE[,^3;JV0]
M&WSQ6R(\U=X@Q-[7,O%U3$KXXJ;2A]5-W[/B^N$- =NM:Z?EM+IW5[=WUW>=
MNX;3Z.EJZ]>]NW;#.9^&@,8EN_"JHW\/I5PV_72S[I[,=:,$([!R[4<PRE/U
M-$W[A.5:$>2[E( <Z@8<3(8!7#Q?=G0%<?V[@HVT_:64H2M4E):*%9V%JC,7
M_.YOC K+<;L3C+2:L5C76!YARYBT\4XFUZ8Z:NXO'VM2M6RB\%$%JNFK#Y>I
MSFWOOM]NW0R:K:M&[Z;1N'?::0>#9KO3[9R13.4;4VBB5D.T;K:UU!#26NL[
MHEOD8JQCVI-#=6-RL[XRNG,WR[KJ:I6T["0K<PU\L%%SV@/"%9&;3+'&OXNR
MP[]G39U7;M5*:*'I\KVIABHB7+7'U@V'<ZV\0*?KW]Y95RZ\)FW_MJV1" KR
M:D] W9 WBXRRL,W!QG*^Q)]H),Y93;: L9F),4[[/"L"8O\B8-NT30QVZ,2%
M];,NY,C-BZ!7 R__0ZMGM\T5F3<5+=UJV<V>J;+E=M:5&QC7GW]07)MKX9BV
M#4+R;O;-S(N.(8H[=J]M+%K>%,$[INKHKQ,[U]\RS'&U?&2S)8#H5IC8C#S7
MRQ;^R<#2#UE@D/[-GLE(?-4E77?WK8;^TC&$JHW4LI&P4A3L&=1?Y-9LZ?)X
M2(P^;-,BW6]]K9&JH27N-$PML)D$F7YS8&P\QA)2!L:$ -NVE$?7ETNW&UHN
M0[DZJ^C\@LW37MN@U:U3A@<@^(=OEWI7]]U6Z\II-KNP1[IO]:[:6<.W0<<9
MM(ZV74K=Q-VU XU3[J"NLXZ#*S1^M0[:,=.C-*1R\]ICZ6R32SV2YI!I)X5N
M')728!SP[_"/SF95UC*('F:XRF0HA2=8I-P-JJ/BR'J<"'0[1-AP-_3]^27N
M?-"1<>7[J\;'XBW*-Y+?9BF?H6KURK&_M6HF?KA,[9:/-3F"=[OQOT4\N0':
M@^Q%5V!6Q5>!]_?,P?D5C==#Q*MY=>U<=P;-&Z?9:=PZ?9"N_J#;'K3[[4Z_
M?]<[JC>BO<IAAFN=(WOI9#ZU75;>+IE,I\ 6_^5IIU ^XNA4 I"$'7>BO6%N
M2FSX5?E\L5<YP"=NZ(MHRK-&A(U\DHIG#0*YQR+0@V1)'&9?Z*-S]4T!B85M
M,XF%C=-F!O8I,W"3[4L7/5&CW#4S&\U]:5?U *CB5-<U\]'?N\W%NG5?0 U.
M%KM<4[2I1X.3GKG@F3*L>^G",5<DR*DXZL &/])-=N-P3]/X)6JR9I'-S;8]
MZ'=,B=E92]-^NKWJ8O:9N^$X4+%$J-U3^2I"DNJ2CG31;-G.P)B,/4N6)<<4
MI^P-,]5;4G-[MV=.#]SY]S1@0]7"TW\7HM"*V/>=LL=5QUC"UW.4(6UXWCM=
M8SECM-.M]4YW8+?-U=8HQ;J7#HUJ90+03O<E5.NV[&;+6,&)LY8FVNG23G?K
M3K?KV/TCEJJCG6Z=U=S1=[I5D[9!W_@.@R2*MK'KV]CC9;!3+8:CD?KL:C$,
M['[;G ^>:C'LB;2[:S$\&V=Z:/QH/OST%N;VP&(5]RWC*,DR:/_&O3%P\Y4.
MB=R>G[Y''&JK,>A<-QOMZYM&9]#H75\U!K<ZS+O?[U[?'3?3O,BJ"]ME:4E=
M*T?>)[FC--E$N4X^6<L.I_=!;B8R1D)^LV!]6)K;#?,$^W,\U_GG6%IBIHI,
M>%S"?=Q#9\P4>&J,5BJ&YR[3R)>1X0)>[*H<LM2.M83.0WI@?J(+1*SGU ZU
M<L9\W2!,H[;QKK4!8\;\6AYM[A4;LULQJN5:AR,56(?W8=6,1_C??,:5:3 !
M\=%N)TT8&#I0 RF5/F$D(AGK['>0(ABNF]VC ]B36&#^U.9XX(M'%GE*]E#N
MI4[%G[(XB92@XNN3&;YZ@\\.9X)VQ_+8?)-C#W_2"BU4SK\"$_QZY"=NG*09
M9,^OP:+:!S 71GD#:ZE53&^[S"^_Z@WS@.BG>63&YNI#N@HZ.6TUE5$7'O$6
MDINUN $>]33S#I'_1@"QF'2]S A?L.B(B2C'IYC0@("<OBC%9%RI(<=IJ'7W
M](CD)C_@V[&0B18?-2LP/R<:GRVQA!65KJ5NRE(;=/XX9RJ?+YVRQ.=[ZJDN
MDQ,+8VQ+R7I.WYK"UQ-3S*<I@TE28@34Q=D! 9"<*TB2KE@JX7]:XET^VT1/
M'*\;ATREG<PB #%741SKR0P3>%F\=#;KM5\V34HKXSS-Z0N^4ADKD6:^U:<O
M,4EN64]<Y->S31[P/##"EE5UX(O-=V[?&JGYXU&?H63:X_;:PTYV\4J>29C$
M6*Q!E6C8E(NU!)*3Y ]7+H6D@/P0IVDD0:3SV@21X_9^,GW[B=-CSIKVU#5L
M"YZ5-S>H4^X8,9.90+MVO 7Y1(G+B,MV<MG>QSL5 ;CC>-*?*^26;DI.*<$E
M=)(_0[6?PK37]2_H #!%N[HXO.MYRGPHC_SKRZUU]ULB'IC/]\^C/2,>*1D<
ME\X2()PEG"6<)9P]<7SX2< W<X^B3_+D0%RHD!U>]*,:M'JN@ K1BF209)!D
M\)2TVJ4<5XZ62D#!XCQ%ZN+W(H:'N^O13-("\]NZ73E:3B/&\H%.3U?.HXCC
M/4ZA[Y(H-*4WBLN>.6%?TM;68L>4$TH)U)1 O2DM7;O5(FDI):">DXNRCIIH
M$23=+)Y,YR)@I(YJK8Y(9&KKM2U.@/X?@[=BN/.O_.F>"+4_,E-WM?K;VVF=
M^>%&/0_ ](K;[8ZQTA$U6N^2(6"U+/(*(V"[TR$$/"L$;-N--B&@"<.P1!Z,
M JMV8':BG%@_XSS)A?&$>]#ND"^]$("M2^&REMULM(E#RH@AYV2MUA%\';O;
M(? E\'U*/3=;YFJRUYU#SMY1^G]AQ%E@_?N9UK'GX21HV4Z3W 3GY29HVOV&
ML?SC&JUWR1"P6J9GA3'0L?N$@6>&@8[=(PPD5^F^[/*W)!@S^#6P[L-(F,N9
MJ^.&O=<Q>O)>^PW9>6[9N^::AIX#AU0%@JMEM-81?CMMH[;L.0C7&<*OXQ"'
M%&H6U\GZ_<K$HXXMO<6"HQ'Y##Y0;-79.0SZ#6/=DFJTWB4#P6K9GQ4&P%;/
M[C6-;>%J)!#U!<!FCSRF)DS#$FW7B[,9;UC /'28FC49Z[AC'PQH+T:[]2<<
MZLTN\4<9\>.<3-4Z B_E61, $Y^4R#*NDP'\!0;%9F%$3M.E(4,>TS-R&'0<
M8QE1-5KMDN%?M8S0"F-? 39$C:2BKAA(JTZNT\,MQT<AI74?L<"EW3OMRFCW
M3GQ2-D.U1#A<+0NVCD#LV*TN!7,3!#_%(>V&0QQRN&7\9]54?MOU1QM8CFC8
M0>PRZT72;/QQA>L<Y+$<6?^3R%B,Y@:YZ&,P"J.IZFAF17S,(GRW%4^X-6(B
MLAZPX9T5CM0W81++F 7J"KCK$2X&C@CBB+FQM!Z9Q-8<H] 'Q2&M"Q' 36$B
MX0;Y]NGN'/N2HWL8-7*/79'M1O88$8!RTY_S[PV0(O[J0N UBP<K!K)<[OOI
M-7]YTWBC/H-TN-GG+>OP54RQGPE_M#Z'4[:A5],^Z@V8=MI6V44W]TSR]]D?
M']:%;#FHK:UCFHVM$+7_GC$=4^>5O>';IVUM_\K;3_QZFCPQ7A5'7ZG)5_YP
MM?\22Z#_JFW98JB#YXQNK<Y2*CBS[Y8,?>%9_]-0_Q5!QZ=IYX+BYU&.$(.7
M4 ]O4I_RC6+54ZZDY-BU;-'%S)2E3LX XKJ=7/=WP8;"%_'\)9Q7$0 L'3LN
MAOZLY^$H[)B^1>U:-EYQ@'8IFE>OF<\"]^ENZJ<9V9<)YT]7(SF1=(>NVJ@O
MN=3*,>RVOTCG&-<YO1,(>8DTS#UZA7Y!KQ Q%VD0TB"D04C(28,4JT%H8T(2
M6:A$MDJA=DLDH[?<Y=,ACZR68UO-AF,L1YVXCK@NNVF=R8Q5@B$F(_J0$!+T
M$]>5D.M>!_V[M@(K\2['9L.G26<ND4%_Q(O?BQ@>[F;$7!SU6#^%>.@HX;TL
MYA[&8_V->V,,V/H8R#A*IK".\NE@+$HGV2-L[LX-@W J7&L"Y.6;T7"F0/,L
MB/ESQ&<,T(U_G_%  A>SP+/"&,#7<I,H I8%1I:\EE0MG8XR#IZE""W>C:<;
M!M ?CL9EI<Y"V$X<"C@G#"(,,JT "7)R:2U4EXT@YL004R+"%0<Z5ZX;)7QI
M==>0>-7BNGHI-C*N#S>N&Z3["(4(A<B\+M"\;A'$'.[]KEK*N#E^^8J9X"JE
M&P\1=.*S3*93%L%U4J6% Q-(:3$W%@^8>3(*(XOYON4MCB52[ZURZ_IIAHJ
MFQ\GPIU8CSSBUBSB$H^8/"L,+&8%/+:&3 J)'_$=-V&@3L#4J48:]VFI*$MI
M>0FWXE!=IJ0%T]7#T0CSKQY%/+$X@[>XP*@QCV8L@B$^EYM>T<3QP>!=O]%I
M=/O-9A?XHM\QET;N#,RDD?<KG9#:JO3HSWKR@TJ/OMJTKT4:>(V23HUO7"G9
MF9*=3\%WE.Y<!^]!S>A3HR _XP*;Q?TM"4M1IL2 A3#@T_Q&N0:D$(@^Y: /
MX14I3&+ O<LO5%F;4D+!+MK^J ]1IGA,(?$$(^)N. [@(H^"WZNKJDMQ2$KQ
M.6:(0\'OA$&$012=0\'O!#'UA9@2$>XTYG8N1*F&-*T6,]9+WY'-33'QI!()
MA4J@  ET*";^6 V&ZVPX8ICY*6&F9C"\K.-4FY[EV^V:_Z4FYB0F)"9;B4%2
M05)1"AN>C)"SY*,:HBL9(02W)"9DA)QB^U\BMV-Q*ODG'J<*&4^3TH3W15;[
MT9QM9PQ'!T1NMF;?+2],,!?_-:&;.U=C_PC..IY"/4?JUWB,BZ!LA>+&7DS:
MTG DG7\1>E8:/0DLRQKQ1N!(X$CQ<L?8WN2+>-$>IS2,2%J:]CAUB-,C14[X
M2?AY>J5/<%G""$,"QST/**I6LS='UO\D,A:CN4$&_!B,L#9M+,+ BOB81?AN
M53(76(.[RJK/%>P5RV:!MBK&"S_CQ<!5//+G>"__/@ME$G$[*]'KYDOTCD3
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
MCC+*YV<^92* !2[AV&[@VXBY<<+\$H[N*X^F)1S6BO6F?%YDN9'E=@2(RZI
MEU F/@*.B$ *U_H%#ZQ*.,)7[KD.\TX BY4I :C 9KI)++%@$SJYV<JI,M;]
MM$I;A:TDL4I.T^XUJ<->*5FD9GK5N-U1"FX[1MSD<TQ5?IAI=MXUVX0RA#(G
M=IX0X8API]LOGK; ;+D(=_AV9H5*3L6W+3_J0,Q3FD]E,0WLP<#8%NU<+ ""
MW?VC#BI6J:/3?-<E>2!Y./GVFNAS5O39VXPE:W4?:W4_8[_J9FP6E6+,D*VC
MC_W"L=L#<\4,GJ/0DD>*(Y%A-C)V?$U^"JIYMSS;ZKT;D-.91(M\IT2XNA&.
MG,[D=#Y8(=Z'T8@+S&P-HS3WVYSA7G1GX1/:[^VV<VPRG;,13_!>6^=VJ_6N
M0TW@2![(>4OT*:6Y3%:Q.>=VQ:WEYR/+CUA>NUYN<?5QL[M2R^[US357>C%-
MS\6N*)$4EPL03U,)N SL6,H>#=6.?]].O9;SKG?$^N9EX"V"NCI"78DH>TSY
M[;UK%9\U1\Q)>ICT<+%[CG;7;O;,]<4[>TW\RB.VBOL,TG@X57#TU#Z#.KD&
MVG:G8T[?/D>YNL@B.8;K(V+U,2,J#$/-ALF(0H(A@J&3P5!UMMJ==WUCO;2(
MU4CCD<8[I(]PT^XY9'D7OPLND1.PP"/UM!55VE]%1Z%RU?PF#G5O*+5K7@6V
MK0NQN&)C@VU=..;RB>A@?JR*Q+4'=#!/IU5G:;Z4@AU+:=?4\4"@U7C7I>,
M@KK*0UV)*'O<@_GF\5+MB3E)#Y,>+NA@WK&[;0J1*\(E\6?5$7/K];F_<_/:
MV=93R6][37Y5FNPZ*5;OZ,],MCJ%#;_U,;#P#:IM:=K .O,R:*?#:C-O[7>0
M%K-F8:1N2CM<)\'J;4O'! P*>\/.0A&HKNAX]2B)DXB_LS+'QJ8[(^(6,*.;
M^ R_'LXM-IOY<Y53$%C8>7:J?ACIU%QXF!5AU^QT"NNC*6VC628BW2E<KC>$
MEXNFXT SSMQ)VC,7&RY+KKN1<YCVDA:)1/+$*_UK'[/./TRWV;&8E,E4O^#E
MW6EW$2%WSPK?GF\KVH&13K2=[EFW,Z71UZX9ZVZ-OU?WF$V%C[>E!@CGS5ZS
M;2+KL7_:+/*B.^O\"B;1DD!W@,W>YOG \IN68[_ :"(N?"T74GO@C7 B<^&@
MY)(@1LMN,MGTBOB*^"K'5WN'@E $Q-:[/@OY[7(4<;W-+Z6CNJP>P>8[<R$(
M]:JANYU>?RPE=]5,-QR/<*ER43ZE#<UR>IE-1;3X>KLO$M$BB&=8,Y"XDK@>
M65R==\?KC7NVXGKN";'I@1B\30 $>-9<</_,^YYMM]<:[UK&\US(CB571LV%
M*96=MK&@S6K*#HD*B<J>HM(W%E5U#J)"CLRG#;N'T&>Q\$4\+^4^[/12M]VJ
M:9$SDYR955)Y-9-*=9?!OA[U$D*2.9(YDKDRRQRY%76</8^FUH4(K#EGD3QI
M"Z+3R]=VTZEC[E"N+KDPY/XX1_$@:2!I(&E8DP9CM9WJ(@U[Y4D>;6#[IO2I
MG$LC?*'6QN-N&#',KGL/YC6/\-T'!S">+ATQ6AFD]<BD-6024PMG86 Q*XXX
MDTDTMT0@XRB9<GC)XR247-N3>+T;!E+(6/TBXHE*1X3OXHBY<<)\?6&:,ZH3
M'<WD9AYM(5]R,G_(BN9D_#^)C,5H;G"1?^0!CYCOSW56KYM$$:[4ZE0L(==S
M;X, UD[\5Z3YI2Z3D^5-0"N?1?K*7*ZP5AC]IM/[(*WKD$6>JNLM(B!?&$EX
M:$I#_5066Q&7B1]GCW']4"6TZJ38621<X!B=/JPR8RT/AO=N3[547C;:\QR@
M-"R$.,$W![\)%FXX'8J 94GB$T"%,$+]E[\K7[-N!^\L+X G3N%A:98TJ-,]
MT$6QF9C.?+$ZW%$(=T?,RV6LI_=M8U_URJH"%1*EI J'K_@CD(5@"N(!$_NC
M<*J6 W@HG,(S+%BZ&#%@&GK<7_X.:PN+CXO''P#+I(:2&"R^,<<ZB:JQ *;7
M*WX14VZN%D#A<I9570!E"TL\$C - 3/DP,[AG&--A1F"-+*Y".+0VIC9X:^-
M'T,#3['0OSB3[P&P>682()9CC0,>")"]*0O8F"L+ B64!2$L9K1V+6@J2W^?
M35F^LZP\95(-YNOZ$$B@)\M#P#,-S*Z_Z6U\ 8E@O7!^&X4S$)EV$,GD))RF
MD5G@:+<OTQW6K$#WHN4E468YC$0D8^NWA$4@\:NE12+^H 05.7QMW=2B@U6B
M#01=$H,AS[MHD*JJ'Z ;9CR06A@05@)IBE)_<.QFOV4W&INA4B\@& P=\U=M
M6$W [J.,O]LS.7H#C]F::'GX8^P4.H[&"*U6NW2$W'1$'/Z8"JG$C8(V:B]P
MB7N!7#6=W<5TT,8PP0K-QKO^ID?TE(RPF1+_$HDR@I>==YW-,)UZH(T1/'[7
MV@PE) S95@.M&!")PQ@V%& R@UTBA;L+,[+-@SG4Z#3M;G-0.AU2(NAH=>UN
MKUDZ"I4+0#H=N]-OE(Y(1F#$6@KH4_H\W329$LR68SN-;NDH6A[!;#IVQRD?
M<I5++F%;YSBT13CA%N%JI7GH2NVR4HFD!K@DB+@;C@/XU=N^<8VX/H2!C6T0
M!I<IZJU"H2D,; _LIC'CQ+8>)\*=X%E2OKCK$*>TF++RR;+-/5U:Z=20H^O=
MEA:H+Q!'%2EG1@SZQS!RET5@=?54F4RG+(+K9-[M]B?E50-#V%TR%G-C\2#B
M^?M-\AL0^HWB2JN3K5P-62#J6 1ZD"R)P^P+'<*CODDK>38:Y@K+.HZ1RK+M
MUU:6?>W]E;Z]4^G15VKE*U)1M'01>#4JPF<\POO+A('NLS;_NU!EZL-$PL;@
MM,'Q=>7&%G'C.C?^.[."KU(K6/_WHXIUND=7R"_H"B%N)&X\ C=>C<<1'^.I
MVL>%FUSQGRFT?)%"+U%&9'%)6C^%64@(6_%F9)U:CU=\K(*1^4US30CKWMFH
M0L)6.M5A7+66@MN>< X>C:G*#S%.[UVC^%Z)A#*$,OL;J$<D8ND)5Q%747%@
M_:..=3NE.BL)5"^2.)K&\.I<<)G@=W_?Z:LEA*2"I*)R4O&<44*V1_5,X.*,
MDE^42ZN4NX:2&"L71_!=5;C$E[%SN!*)6[G ZZ#CXL($D)PYU36/2+1(M!9W
M#08D6.2SVI-9[G7&-P8%8]6&F8C(@45;==JJDP.+I(*D@AQ8Y, ZM87R7%C6
M9F+82XW=E6C#UNR[Y84)YJYDX8;GU'!3?=R(3BQ  ;R<ZJ7INDD[_Q("ZJOY
MKE[19-OEV5QXV:NQL]1[P@J@(0$> 1X!'@$> 5[% *^:!?R/4TIA48A([?PV
M"R8\LLC+U1CD$;<\CC6-8>A>OBPV5EZ8LN@;CY>%C5:K,:P4N<9*QE@.24S5
ME>H%:05<$8@8RR*[H8RQR@9<%UAL&@)S+TIKX+W+6AJX>P6R64D0"U_]EDU$
ME1%190CTPR5?F:-.DU6S&B6^/\^*+Z6E3.&>GQG*E( IQ-*"JRT.[XA]7?,C
M*Q0OL7S[#MK9UC")X7<?Z\"Z7#QP3"F#<<",$GRHT'1*QX(#2.D@&0BI+N8=
MR!%,6E-4+JX5*Q4N<K5H,WIH"E6DP,VR.I8BWZ7FK:VU8["JD5YE74-&!' 9
MW,V^6T,>\)&(\[58C%61<>S&P%AM,E.5F7IVR^D9*VT#_(0E;8!+L9-"#:M]
MM1Q[T#96A<]8>:V&W396RKBP52Q72;)FP^YT^F5;R:[=:Y=>',V4,[1^VE&3
M6G7+83,18V<5K4UK!B/&A '4>XF6M#J&PGH)L!E(2MHC@S]O/PSGR)_J*ZSR
MS[&>?VI-I@]".S-([== ^;V5H?$EAG^FZD5@C'V">Y@V,5<K!;Q_,2%W4:ER
MM<-T*:3!X%V_T6ET^\UF%^;7[Q@L$]8T4B:LTSIMK:D3OYXF?R:3KWP87O]E
M7B2\+?5J<=[L-=LFPBNP1.$IHXXVBN3L19QUC=K?Z87\%7O;W 780FQKP=D7
M.-Z(Z5[+=-4OY6282TU&IM#1%C':DYL[XBOBJ]?SU=Z]M0_3G$" ,IW:%Q>I
M>(-'0NJ<ZH$'IZT86?Z@N9,<VK_B3+Z2\9I-N]TNOFQA:7B*XI+*J60)WO*'
M,(1F^Q'*L?M]A\"+P(O B\"K>N#5Z#0)O$R U^&[S3IM*C]S"71S)[;EP;;2
M#V=XP*OC5'@P%@'G&%CW$H]'?9*3MV]^G+;=Z1GSP=9%FL@G>(X2H@4"E%+3
MF%(B@2"!J+A =.UFS]@.LR[R0,[]K7=]X;X/X[*M,0]XQ'QM@C%O*@(A8XRT
M>SC$XW].5<EV^*;;=J/;*7R+5!>Q)!?.$?17#81-6WH#N]$:D&R1;)%L&9>M
MEMULD=XJQIRD/==^7%-(+8>R.)-+6<^A^N<2VRFH\X:/1L;2,!FYE C>2@1O
MA&8O(9C.ER?P(O B\"+PJAAXZ1(1!%Y'+Z:U[>\?_IS(RS%CL_>W0KI^*).(
M?QK=Y/+S/^MR/ACD+[]@B:-K3.'_F<U5QOU7(,JU'[K?_OK[W_V0?Q2,600)
M]Y;I^#\#Y=WYX@8++X$/G_GH+V_N;S%O[)_M7[_>OK&$!U\P-[Z\NV\/G+N[
M0:<SZ#IW@[M&M]F\O^I<W[8'MYU&\_K-7]>6*$_N9U+AMZWPLY6_"MR/Y&F6
MJV'P) .4IFC9I\#Z?XD_M[JJ,G7'SM<84\4>?(Z%&N)%_:R1)6)I?4FB$7.Y
M]3'0!57"P/HRES&?2NM6/ B)7UQ\^?CE]BW6];KZQ]W7N_^SX6KWG76A/[U]
M9UE7UE $.%>+14,1:\+I<B=AX/J)MR@=UK4>13S)ZK?@,UW % 8_SJ+02^ K
MH/L(BS,$,"K79P)&,F6>JDW!8' P%,L%ZH53'MFJ2L7C1+B3E>E&?,I4&39\
M#:R@0#!* B^MCX8E(::!B.?X3CU'F55E4[11A<68H@9,[B-6L& Q7NQR[JF3
M.%6B+1+#)&"^I= MI6TV!)C8C,W55]EH+3:#1WP74Y!E6*@-MGJ!WFLUN\9*
MZLPB&%DD5#FVM-B'6E#X. +:901:+%,2N1. (;S/38O(+4G"?!FNT&5!A!QA
M,EJ9ITN[4S19(BZFPR22JN@)TL;G8YCWB'.9TB+@\"X>Q_[B$A,S:_8=4Y6=
M4#RQ&ER42J>7A[]P6<(E%5P;%C6$F2OY-3$5IVFJL-=6^J\6O=/U\(#YXHF0
M*P69C$RE/3!9VBKQ%8\!X9EB([ )I#6*PNG.-3+%71U3@O-TR:3MIL^S]DK>
MP+EC40!$DC_S2)E$AYLV[?9MX[;1<ZXZ-S>MV^Y]O]V\UZ;-U56CW6H<U;1Q
MF@4:".JY'HJZ(NM[I0IQ./IY/P&+?=25(H&:EB*G$:.G\(I78 <+5XE(6ND2
M.$<7 <4:H&CU)"CV8#JHBJ0H5+F+V0,3OBKS%(>+(JQX\P1,0AY)O _UE#84
MN7?)8/_#Q@#MB>H" D*7OPND,(EES+0AA);)LA@K8-*M\-5@*C!::^8GTIJ%
M,2H[0%4/AXX%6E<>D,TI]P/_+1$/8$'A.NJ7N&A^Z=QD7?PUG&G$4B%,,'/8
M3;J)1N=$BK1.:QQQ!MN@>7K/E,<31<.;7:_Q0BL(8^NW!#AM-,=V+;.L/JV"
M4LG=!#9^0HT:##H]3PFV(Y:X7;4=42/*'/+:.4JLE.I=#D-7P,41B)RYJ^R>
M='IH#P,-O!P3*%1?L@!3-=I$9/'1"$WCQS#Q@1FPJ&LL+K,E.!17GX')IQ#U
M$"SM]*Y;MU>]V\Y]JW_?=7K=@=/36'ISVQS<W!P?2PO<)_X[E3#K*I4P12XS
M^\2NJ:&OC'2!!?G"SCG) ][3A0.I8-_Q"_8-S-3KZU:J[%JUB\95>_05B8LI
MI/J8@6BS/M6XH^BK,D0U[ED6JAIL1T7KB(L.X:*,::@B'3$-E9L[<L"%]KMM
M>)IV^I=,R6AQ@?PE"HMU>DV[U6H53K.Z!%Y0"DU1X61GU'0ZE;R6W>Q3U4(2
M2Q++4HEEP^[V]K;92"S-6K1U,ESO]-E:=A*'1Y<KQY+&>*R DMVGE\;M]FK'
M;O3,6:O/$*XN8DC>"!*PW:6!NFV2)Y(GDB<SF7IVNUM0KDM]Y8D<GUOORH+X
M=KD^,:I-_WFY&:16A$/TV=2K\_"8]NQVP]P&\<5$K8OTD^_F*&JV_O*:BN?
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
MG]68B%DP5K4KLE(4*B$5KH\6V<,[$B3#P)];CQ,>8"Y^+NW>#Z74A3'<<!S
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
MEB>DB]. ;UPF 6)@FPSLX'$U8U3<6FA61P[;$#V,E FS9Z.](^ 5*87EM@7
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
MW@05#N8N&"I.230[Y4#3TS3",($P:LKDTKP(F W-"9Q=*6*BKQH1SM*HVO1
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
MU@<]ZJ12G[G8+:OP:%W"6H8BI;V_N@(6BK&<+1X&NMDS"0^$!\*##,+K_=Z
M\$"QMUV8Y7@]M+KBQ"CLI=5Y%X:B Q0=V#TZH,R((UP1K@A7^5OF2%WCI:X#
MZY4QMY8;@\^W[U)WWEA+XX2F%*(?(1MD9P*VM^N!>.O8K;::PD(4&&IN,AH)
M+Q)>.Q&L/]('EK(X' DO$EXDO$AX'2_!T+"5W7A(PFO-M_PN<6#Y5<\?;6(E
MH@5^R"Z+AB*]MRM,/ 2.+5'UCY0G_F2AD-4^P8 S+/+6G%)!M<:^S5G(F3:)
M8HTY[A0]TF0*/_N/3.,IQAUPCO S!W[3%K!VKCFAAP_%S)DDX+CZ'%W9212
M@.;:A1_"'Z.4PU/\W8>#J;-MZ:5W5L1H+Z>@'X*&D#^7!PVC> :T*1/=P&>*
M@06S:"X+@NR9'][TWHB? 0EN_G,%T>_\&>/:+^Q)^Q+-G WE].1[R13^"6O*
M  C@"IPY9Q_R?WR_#JCEI,KAD0*4@\HXU^X!%CDEVWS[,NHKY4^VI-.^/CCJ
MYUO2G.Z5;7;6Y8==5;PMON$Q-XJ%#/F0 N!BA)H<_U\@([1/\#NOB&TM32S+
MT,D*51]D?VVOAAIH^3QS;G074,>>8I2K692&S_=DH'LF7CS2Z*F[CKM!!&L<
MC)6+N48<(!W#3WQ%/^*&N("F/NI1'4Q]@KI;\MA4EA1%8K>SF:FF;MB4F4HF
MWHXBI7[M0[+F#-.A=)6I+&37=-RN49:42K*FLW:-H0_5W5I_OI*C06JZ5I&B
M[MJ>YA"LO;*F*W;-6.%Y/5DU7;9J[HH3<K)MR+9YJ;K>HGZ>KY(>I*O)R.E0
MLF?C+X*D^TF/JR6J24OWDS8ML[3JWW__+N67#XXS__ Y3)SPP8=WKSAG";_Q
MN1M$/(W9'2S\8Q"Y?_[C/__C[]L>O_5#/V$_^8_,^PU(["Z FB&2[ N;_/#F
M]L;L&?;_]O]U=_-&\SWXA>,FEY]&U^/>U6VO?VW;UY^NQO;-8'Q[-?AXT[\:
MWQC#CV_^L;8%97*^D-I8M8//IKF*/AYUY;F^D)>V)*8FJ?GLOC<F<;<T;4=,
M6W-B!D/(7-X$.( G(B,WR^N%WZ("%5F\\H6B5_3H>XT5:< I9Y,TT )@)OY>
MTZH_PWS,\RT-[8=%HS@MB<1'Y,^/3',=/M4F(@G8"4&\^'/QH4D<S<2#_MHG
MM"B&66!V,?Z5)[&#)+Y$<FLSEDPC3]<\-F>AR$!.Y_#)"7"TS#]V_=A-9T"&
MT!7S!V]K94F8R.Q579JBQ3 ))F>UP0'[;P\+V"/;O)AJ_X&0G J&29Y8\+AY
MJ\X!\Q&YWCK2T:WL'*V,A)AKWAP"<E7[6:)?98_%CM)/R$F%]$.P PW#R@Y*
M2A SA=&433@31=ALW0D7&GMT@A3$(!<R;AYQ+N2?#W_U8UP"KBV(T#U K9[)
M7AUDI1ND0NZM2TWXX].4A0QE/+(J$ 'DZ(HXA'<\L.Z 4OA1-[L#3,.IL+S
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
MYW?8P".-%]J]'^QU2TQ7.S@;8UOOCY1AJRLHH<RULT6$9>HC=;%* @0!HN6
MJ,&#)%00*@@5A I"!:&"4$&H(%00*@@59X8*TS)T4UU8MRN(H&JWRK>N.&?)
M)2Y5M&]VL4'D2RVU#[V:J"-7#XULO=^K_]BD*\"C@]TCZ*BN8,L<Z<.ALJM@
M"5N$+<)6H;?TD4'0(F@1M-0?]QMZKZ?LQF;"%F&+L%4D#NA]H_XR 8(60>L,
MH65;];=N(&@1M,X.6H9EZCUK\XX: A?E3V^^]14!RV#@O7O.=?44R]:-GC+5
MU!60T*GNV>)AJ%OJO"#" ^&AY7B@W!]"!:&"4$&H(%00*@@5A I"!:&"4/'J
MN&U?[QN4/+VV3DJ>KDZ>?F"ANZ@O9MN5PY!C-LOJ"N3HM)%.&PE@!# "& &,
M $8 ZSC !D>Y18B@1= Z.VB1[B* $< (8 0P E@[ 4;&X3[0.N]4ZI_3T'?]
MN1-0*G7V5E_OCTU5Z.D*2.B(]VSQ8/>5=4$@-! :6HX&2@,B5! J"!6$"D(%
MH8)00:@XE!R$"\+%^>'BN:BM16VHU]>Y7W"6#D->QS79U9/9ZJWY-\V+TON
M%==/'D+ YE]T68E)\>,3$[M^'P6>'$;=;:DOD;K#UZE6D[9OCG2KKZX%T,$$
M;@Q?TH$RR5"2H21#=R>MT1_K X67+9 ,)1E*,I1DZ#G)T&%?-T;JFI.3""41
M2B*41.@YB5!KJ(]M=7>GD @E$4HBE$3H.8G0D3[H*\M")@E*$I0D*$G0LY*@
M:F]K(0E*$I0D*$G0<Y*@0WNL6S:=)AT]U>F[Q &Z5#Y?\>^_?Y?RRP?'F7_X
M'#XRGLQ8F/#KP.'<G_C,^[BXAH_'CIND3O"SD^"5]8L;)V%W^)$[H,C'('+_
M_,=__L??*\;Y'-ZP^^0J]#[].X7W/H<\B5/Y!8=/X??X/_BW1R? W_X>Q@P(
M_!?SX&]?LG_^Z/@A_RGBG/'B>[!3(6['%S;YX<WMC=DS[/_M_^ONYHWF>_ +
MF.ZE>67=?C0_71F]P8WQ:7@U'O6O;J\&'V_Z(_O3M=5[\X^U[2UOU9T_8US[
MA3UI7Z*9LUW.EUX/_)!=3B4*#+/W=@78!L*X1K A'74-_ULKD5/7G-#32OOQ
M+#?MNI:AJJ649N[BS-GZS/WES''#N<\3YFG11$NF3)M$ 2ABF)1VX8?PFRCE
M\ Y_]^'@1>ZPR2L*LP>$$#+!#\$6D#^7!PVC> :K7N$#?*886 !5<UD09,_\
M\*;W1OP,4LC-?]Z?/9]\+YE^&(_?V[U!;VB;YA#69P_>YJ(0Q%S@S#G[D/_C
M^W71MIQB.6^R$(]V9:;K[IF7<H+#X=N7Y6^EBI#O&Z]\O7_:SY_V]<%1/W]0
M)FZ3.B78AREX^U7&?3'9T6F3U5V0;BS>EQKK,M_>JKUNF,MF]RQ>$LDR] ,L
M'V*M_5G+>JFMS8K=O6E UT#)TS(CVI*JG!8*4!"CY2\!7^WL#-,5 %M]A5-"
MLQ'=K$X2W7I%\*JI\2FCU]>' W5Y)DW@#8K2-U,)'D\2-2;8N5V*-T(J-3RD
M+MX:C_3QH/Y6C(UAF>:4 G>N3R/0:Z'-G/A/EFC^,@I_B!W_8A_4&NSXTQ36
M;\L,& QJ.M7J+OS(42: ;>L0J0_KRK3I+I[J"A 8+5=TX@04CP[7#Q3K!^(A
M.1][F?P[FVDG=ZQMW30H_;@9FI7<<D*Z(N%J](;ZP"9@-U7%=\ECO8N9P]-X
MH=W[07#F%PML4;-C6^^/J.<;>9J-ZH%8DLT5(OV4VFO0TZV1:D]SEW6V&$UT
M$%WM9D;Q/(J=A-%U]/OK+6NDVPIQ2.>NC0%<>S5=!] FWNJ/=&M,.0WD8^W"
M+%><L^02-YG!DIF+M3T^(V>KJJ$"^%KJ.B-V!3[D:YTC0L1;@[%N]BP"!+E+
M.S#+5X0EB-20W*6]-8^M&SURELA9:I"JZ@#6Q%NFH0]&8\(6.4MTU;4*545W
M7Y./1#Y2.;/1[M'MU^0B[12+>V"ANR#_:&^E4\-UD)VWY,A+(B]ICZP_?=A3
M=[%:U['U2B^I[0GX7Z=1G%PF+)Z5NW?5@J]:FELV+_5VBZ]U[/L.SR'EEGPU
M@N=AD40LU1X>L5_T.:"1/$7*/52=>S@T]<%P2,8L.8H-TI0UU8XU*_W>' _U
MGJ'N9L0=:L,H+[^C9W&4N+BSQAM8*MLK= 4^Y.B=(T)D)J^ACTS*Y"5?:Q=F
MJ;\*N;.NEF7JHV&//"WRM)JCJCH -NE+67I_0(F+Y"SM=")7?_)]>^!3K:N&
MNF4H"PIV!37D(YTC0&28W-*-/OE(Y"-1YF*=H3E];%)E%SE(#=)3'<":5&!]
MW1Y3\($<I%V8A2J[7BY"[E,="[E'U-%^-X'2U\V>ND0'ZFC_*N^J[0GU/T4X
M[V/DTW>\A76U9C.'IMZSZH^EGT7&+OEH;?/1&HA3J4+QB*M/=Y^=0+62_7J
M77;T^I8N7C*[*T7;>ZUC-05'XY$^&*NS0:AZB.0;R;<#+0\29_MVN3%'^MBN
M*=YQKM*K9+)]ESBP_*KGCS:Q$M$"/V274ZG!#+/W=H6+1:RE1-8_4I[XDX7*
MA-PITZZC&6SJHFC\,OJ>R^O^[IW "5VF^:$;I![SM$F4)3XYX9_Y7[F61 E,
M+WS0-M9\@+08@NKNF3KPGH+1Q,V%2F8UU$>CD;)9<2V::#?,9;-[%B]5C67H
M*F9K]HS-/@:G(QY,9S/U9?]A="UF?,[<Q']DP>*]$GP-:X?72KX[R,^0^SS!
MW??8?5(JM=)\SE- V/U"Q<XE@.K?WW]]KSV@C11BB/-[^/A*G?-.DX%'DRDH
MC!D#RKB"(W(9X JI 4\C/U>6CSWW!= D 4PE!L+_);\TCT"YX*,QX,)_1!D-
M/\9:$#DAUYY\F(<;,\]/-!9.4?#(5?'5;,R5;_HP5"(_O5Q1/O\E:6 %L]4C
MR]UHPQ,D)M(DB$#MED:$*2;B::!-*9MG9=B<IK#$?$K1/;"AD_CP%#Y2&D^,
M@E_'KRU_?\GG\"R\[>$763R/?8X">>HDVM1Y9.4A<'N []L"'.#@"?!(](2*
M16ALC:>SF1/#<UPP>)7:<AX=/\"'+X&FE]P)6#G*7Z/@S:)@F=4D2.,Q%^$&
MN_D!S0*ULOG"#X$(4<J!(?B[#P=OZK8=*[VSXI?T\HWW0W"YY,_E0<,HGL&<
M5XP8?*886&ZERX(@>^:'-[TWXF>P+-W\YPIBW/D &.T7]J1]B6;.AK?WY'O)
M],-X_-[N#7I#VS2'L#Y[\#8W;X7 F7/V(?_']^OFZG**Y9C>TN0=5H9O=P\+
MRAE:H[<O&]65YKU\WWCEZ]9I/T^+I\5W?_%T0/#*,SOK! DN+]#R^8"'*^RO
M.H/:5[,(* '&\JZZ_JBSNXYX0I%D L(16.W'..+/)^R<:F:_A^#N!XW%Z(^.
M'^Z3Z40@)9 22(\\O9^ ;GMU7B*4'AFE:G*DZ^>D6\>/M7\Z0<IVI1859%:^
MM6S!_7R<[5"^.R(-VP#8QA"KNY*..(XXCCB..(XX[CPX[LSO4#FXZZ!RWZH9
M]%"6DEG?BI4W,!C;^L"@RS0I?J!459,,:)$,L)3=[D3P)_@3_%L&_XN1I7K1
M2QYOS<:_(]E LH%D0X5[T!]1A\Y7QPW.HX<,71FW.[(L6S<-ZJU>.P%('Y\?
MN-3=NT.X(EP1K@I7T1HIZ\_Y(DW.V8DDU!'J2J;B2+='U,&]/N^L4TX875JZ
M]4I&6Q^:=-A! 4VZ?R?3+-1MG<! 8,B<&]-2=C<;^3 $E0Y#!0RI?H].A5[M
M=YS'J= 1+@;MBJMOZX95?X2M*X"C*!I%T7:&5M$/S:R?OPA@!+"S ]B%I:XW
M,YT-$>@(=+L9C#TZ&:K/0^N4(T87D*Z_U=?[8RI^H\ >!?9J<Y((%80*0@6A
M@E#1,520[:3$PVB0.W^$RZ6I4]P1)$YCB-5:44T<1QQ''-=DPC6&6*WEN',)
MD=?MXE#4O-M1\R,4M;<,4<;0TNT^Y?]1+(1B(1DB*!N6T$!HR#.!#-VRE=79
M4<X/@:7#8#&&ICX8*JL\ZHKZH&**DU=W=R4 ,+#TX5A9C\O.N_L47*/@VN[8
MHFHEPA7AJ@87RJB_AQUY5H0Z0MV:I6A1.45]/EJG7+&#KT_J:BC#,O6122F!
M%-NCV%ZF3Y3I$@(#@:'E8+@PZ)X9.A(BI.QF1PU[I#I>ZVV<QXD0M=?:F51#
MW;25G;1VWKVGT!F%SG;76<KT%>&*<$6XJK'VG !& ". +6U"RR";L#XGK%.^
MUM4#"]T%%0+E\6U]K,[NZPI$*'!WMGB@1D&$"D+%QL&/LEN.Z=R'@-)AH( Y
M95+&P*L]CO,X]CE",]^NN/@V52E0[*Q)>JDKP*+@- &, %9KSES]QZKD5!'H
M"'1E<[%/YF(]WAF%,';CFBCV6)ROWII_T[PHO0^8]O]ZXC\'$3 ;%)\P8$0>
M!;Y7#'AR<2Y^?&)B<^^CP)/#_.WH%#TR 16*KFH*#L>&;AG* K OTK$Q7$9G
M&23?2+YU7KY9IKK&/B3;2+:1;"/9UA39=F'JIL*3BUW)N%<<J(V<24?Q) M)
M%K9+%@[ML6[9ZEIBD:VW&KS[+G%@^57/'VUB):(%?L@NIY('#+/W=H6M1>)&
MB:Q_I#SQ)PN% >"[*=,F40!R%KZI"<IH/)W-G!B>XUH"?[Z.9K#GB^( =/0]
MUQ[BB',M#6,&$_N+>5H /\/S3NAI$\>/M4<G2.'G211KSJ/C!SCP)?QTR1WX
M@A\^,I[,6)AP^#>\M3Z4-H^XG_@1_(UKT42[82Z;W;-X*;@M0]<V:+S7^K,H
M=<;H@LH><_'Z"_CN!]Q)22*S9VPV^-Z?TMH%K#291BD'(O%WS]\.]QR#;-O\
MTCLKRJ:7\Y ?@AZ5/Y<'#:-X!G->X3M\IAA8<H7+@B![YH<WO3?B9Q &;OYS
M!3'N_!GPP"_L2?L2S9P-%?[D>\D4_@EKRF00;$G@S#G[D/_C^W69LIQ4.02_
M/+?I5QZF[![%EW.R!F]?EGR5,CA;T^M>MT_Z]=.^3FMOZ>1I[;3VQJ^])6>X
MVRUI^S!#VGZ5YUM,=O126L2*K['I3=2<'>&"></B?:FU;K+96SVSWY=&ZD]@
MI.YJP1UQAK_E9O,M&-X_,8X6O!,V<**&J?T,?YCND\S=,) V+D!%,-T*TRH/
M?04K/\(K,*D"+E4O$,\2S];%LW=1X@0'!+/(BMF?U5Z\?[H&5GN!DJ=EOEN,
MV/T3(W8DV=1+-F*WK?JY@8;I3R*033@@')#8)7;K$KNMBMTJ!X=D'S$CR3YB
MM^ZQFVK95U>GCA/[Y:_-)KF.XCDF4+"]&W4HAW8CRA&W4TI=FMQ+?*6^LEGY
MM>#]@3X84V/2H['$&:M(DC/G*V<N#-T<;J;R49,):C)!(HA$T#%$T'BLVW0M
M#UDZ)&9(S-1IZ?3']??U(3N'!! )(!) 56^9_8'>MY7=C]Z(G2=#A^0,R9EF
MR9D+0Q\-U;7%.6=3YY777;7\Y.HN9@Y/XX5V[P<!W7>5?&\8?=VVE(4JSD51
MDS[N+"(N1LH4S3GH$T+*\>G3#!919J"VQPXU+-T>T/60) )(6>:.&2E+4I:$
ME!U4AVGK0W5GPJ0["!$M1\2%.C2<@^XXJ!J\00<*-5YASSE++G&I#,C!W!3@
MY^]5X+0SQ+IR(5!_I(^&=&Y7.P%(?9T?MB[&RFX\/NN3*@(=@6YWA=;7!S9=
M<D?8(FRI5VCF$4Q%TFB$.D)=N8;$U*V^NNLA2*,1M@A;N4:S!I1->+*@9)=B
MCU\1S P&WKL51E?#^I;>'RLS%\]%.Y$2ZBP>+OJJF:3+"H6 <K9 Z>O#GK)K
MW4EQ$!Y:CH<+2UFF*6D.0DJ'D6+K1D_9F2MI#L)#R_%P89'/46M);(."R36F
MU3VPT%UH'^N*:W4EF#S0QZ8R2XW.:9H#K?;JJZY ZT)9/."L3VD(<X2YG;E*
M4LDV#;-^F4Y*C0!& ". $< (8.20$;0(6@V'%CEDU(3OU63Z.0U]UY\[ >7,
MY<TA=*M'.7-[KI/T3V?Q4(.+1*@@5+0<%79?68$KH8'0T'(T7!B4'D?I<824
M'6[IT UUA:2D.0@/+<<#:8X:@U44-7YE7#2*/1;GJ[?FWS0O2N\#IOV_GOC/
M003<NAO9U_!5 S[%H\#WBB^=G$_%CT],[/I]%'AR&'47X[Q$ZM?<G%,'914*
MPFK26H:MCWOJ[DX^F,"-X4LZ>2,92C*49.CNI+TP]+ZZ0-WKZ;N7:=I&7J8T
M6)*W3>=1DK>UD=886OIHU "!VQB^))N59"C)4)*A>]BLMKJ0*%FL9+&2M"5I
M2])V&VG[MJD/;74-2,EB)1E*,I1DZ#G)T M3-P<-</K)9EVG=2E=X+O$ 2)6
M/7\T15 B5N"'['(JUV68O;<K.V7@OI3(^4?*$W^R4)AO<<6U:*+=,)?-[EF\
M%,>6H6L;2]AK^(PC,_X1B_"8&\5.XD?A!R14E@?6,S:/=O=?B*XE4Z9=1S/@
MRX7F >N&4:+%\,6'$)[4\+<1/ (,/G7"RX3-YC"7>*'Y\(8?SQA\$"@!3W"F
M^>$CXPG^CK_7/H>:GW"-/3I!*B:O:S,G=!Z8>,>-0NX#;I@G)I LY@S'R2[\
M6\AIN?!G'V8#KX</V6?6'@E8^)!,Q=_\&5MY0)LZ7+MG#.81:HX61)QK\XC[
M<B[B25QA-NS:GZ,TAM<2G*H3>IIS[P<X9!)I4T#1ZG?@E^S;G+D)+ 8I!V)I
M@</BRIDNWA<DU&;,"6$EDS2 L2=1/!-T>:]I=^4]B!@7FR ^[^'HG 6!',?G
M6AH&_I\L$)^]9_#!?Z>^(./RN<5R2YQ'QP\0N)?PO4ON!"N[! / KYG<J,D$
MEN _,MBF1"XL@BD[\9\LT>:Q[[)B<>^5H'18-TC+5,6I@YSV-!#\L-$Q@X_^
MA3\Z?@A8#N6.(GF =!Z[3TIW3P)I$W@<6% !X/XV'(YU@+:"H9"O%0RC3)*H
MH,[8;!YU-M-M#Z$.PE<%A<RQJ9!"L+RAG-L:,% >LN,BPQC:C=O[YB##Z/4:
M1YUF(</H&8J1(54SJ%&I)G"B&2X<U)JA&Z2H4^#I-Y\+K8J_CV;L38Z=:S!U
MT"EPT#[XFL#_Y%;3KW,F[3HPE[3?8A_T+6CQ,MZD$E\"3@?UOZ:[2I.:X #B
MC36<ZEK(I)WF?-/%W M]"'/G4_@-FC4LYD6QYNA[#2T+L + BI+F"ZQJ#@\R
ML-P>6;9*[0*__>[]Y@8VUB281$$0/:'0$AZ-QM,96#GP'!>DK["#<.MX;BAF
M%D6)4/PE*\OIBK>@7?C(TU'*@>OXNP\';_JV'2V]LQ)PZN6,X8<>D%3\7!XT
M1&,Z6'4"\9EB8+G5+AC(V3,_O.F]$3^#1^[F/U<0XP[<"J[]PIZT+Q'X+^LS
M?_*]9 K_A#5E@0#8DL"9<_8A_\?WZX[]<E+E#/QE@89=64ZQ>Q*_G),Y>/MR
M^*$RK)*MZ76OCT_Z]=.^?LYK'[5Y\K1V6CNMO<&RKB57%#;N[*^8KO52;[.5
MPY/- PVUQ: NV'(L+BW3/L2\M[>><PA:P4C&DFC_8DZ\!^&(L8BQJO*4+\U5
MEMJG\1GQ%/%4!4^9EQ;Q%/&44IZR+OO$4\132GFJ?SD@GFH-3RFDY6G9;G Y
M(K9K#=NU0Y3=X?'UKF2BF^4JW[J.8DP)2]C>#:"5@[*E^<:*TXN[FSTL76]K
MI-LC93?$-I]GJ)ZBF3J3Q!>)K_T)91OZV"3I1=*+I!=)K]9)K\%0[P_JOS:H
M,2Q#THND5T-8D:37JPEE]O3>L/[+!!O#,B2]2'HUA!5)>KV:4'W=,(<DO$AX
MD? BX=4VX5642QWAGO3&\ V),!)A#6%%$F&O)I35Z^E]2]G=6\WGF3K%UWE?
MFGT7,X>G\4*[]X. [LQ.OC?&MMX?T;UV1]!5'=/E746$9>HC=;%* @0!HN6
MJ,&#)%00*@@5A I"!:&"4$&H(%00*@@59X8*TS)T4UU8MRN(H&JWRK>N.&?)
M)2Z5>:4&FW7@2"D]3PBPD:WW>_4?FW0%>'2P>P0=U15LF2-].%1W<PIAB[!%
MV,KUECXR"%H$+8*6^N-^;-3?)VP1M@A;RA,']+Y1?YD 08N@=8;0LJWZ6S<0
MM A:9P<MPS+UGK5Y1PV!B_*G-]_ZBH!E,/#>/>>Z>HIEZT9/F6KJ"DCH5/=L
M\3#4+75>$.&!\-!R/%#N#Z&"4$&H(%00*@@5A I"!:&"4$&H>'7<MJ_W#4J>
M7ELG)4]7)T\_L-!=U!>S[<IAR#&;974%<G3:2*>-!# "& &, $8 (X!U'&"#
MH]PB1- B:)T=M$AW$< (8 0P A@!K)T (^-P'VB==RKUSVGHN_[<"2B5.GNK
MK_?'IBKT= 4D=,1[MGBP^\JZ(! :" TM1P.E 1$J"!6$"D(%H8)00:@@5!Q*
M#L(%X>+\</%<U-:B-M3KZ]PO.$N'(:_CFNSJR6SUUOR;YD7I?<"*ZR</(6#S
M+[JLQ*3X\8F)7;^/ D\.H^ZVU)=(W>'K5*M)VS='NM57UP+H8 (WAB_I0)ED
M*,E0DJ&[D];HC_6!PLL62(:2#"492C+TG&3HL*\;(W7-R4F$D@@E$4HB])Q$
MJ#74Q[:ZNU-(A)(()1%*(O2<1.A('_2592&3!"4)2A*4).A925"UM[60!"4)
M2A*4).@Y2="A/=8MFTZ3CI[J]%WB %TJGZ_X]]^_2_GE@^/,/WP.'QE/9BQ,
M^.?PAMTG5Z'WZ=^IGRP^ASR)4_&7:X=/X??X/_BW1R? W_X>Q@P(\Q?SX&]?
MLG_^Z/@A_RGBG/$[H-S'('+__,=__L??\^_]PIZN7!<V+ %V_RV.0OBGR\17
M\ M3)WQ@,)/R,W[H^O.@-![L6(C;\H5-?GAS>V/V#/M_^_^ZNWFC^1[\PG&3
MR^O;(<C4_O#VZN-@>',]'%_WKFZO!A]O!KW;VX^?[#?_6-OF\I;=^3/&-9BI
M]B6:.=OE?>GUP _9Y52BP3![;U< ;B"<2WST1\H3?[*H$X=B]JOD?9:I=EV*
M7>-*Q+@><Z/82?PH_ "@9C'.1HZW9 GM:^*$GA-[7/M][CD)TRZNOO[^3@-&
M&%[V3!W_85\:AJ[!8_('LZ=K;WYB#K#EF\830B[WZ^_Y@C07@)8 2]Y%<]_5
M[#XL4:[EO:;=39D6W?_!W,1_A']-M&3J<PW?AO])(@W0$^.S6A([(<BY6#14
M1<*XT0Q^=.[] -"N.;,(*!O%#T[H_R4V@&OW"RV&_7B WR#9 S&. ]A.N!A!
M_B+PY1@^S# *X?M,NW<"!_A.XU/&$KD-GL_=(.(XSI]L =.:1/%,?$=S[J,T
M$8/A7YTX1B$@>%:L+UN.,Y\'^ E8DQ,N-/@S3CN9.@G^F\4<QL2_R5G!1X-D
M&J4/4_@99@PO/OE!H,&_Q QG$8<-@:WS)Z!V8'-<*7HRBLY C,&4)Q.&]((%
ML>2)L5";QWX4:S]>7?TF%E5LB" VO)>12RP+]N) BFE &_AMA(^*?085 8/
M5)D'HVG1G"%&\BWAFH!*:7*XBF)J0'E\-O5A;%ZL9.*'XH/9"#BY]6%U[6GJ
MNU/8$9A7>L\!=0FP:[  P@'W.C'N!4X^GYTK]],%?0<ZSQ'+*'T=1\X_[SIS
M/W&"YSY?M:I;^.<<+ !8FF#?T,=IXAS@"YY8$&Q<&3NP,6 /9/# "3EAF,*'
MX6-^Y"$]'OPP%(PW@5EK-PSDY3W\PQA(02+9UT<6\V?%:T\^X"S,-FD"O U#
M+D"-(P.U0\!\#K7_26$OY1J1A+>")>!YK5+6?HS@?X">/ 4NS$B,8E8@$N#J
MK= =B3:/HT??0YX%D,/2D#M@] NYV_*G=U(P2<C,&!#4$P-Z\("850B:3,*&
M9U/)I<+FB\"<8-A)V9#+"A ;BRT#:8[\A/@8#B.4"<XN%WOPD^:FLS1PD'\N
M)2?!\[@=**%R! #O"A[*80S8CUD"0@06#UR!?T/Y))Z5+(2/%-\%FREACOA=
M*H2@&!.L=1_I-8L\"7T8,H[X/&/FS>67AY30C1G8:S&\*H43+#P1DE4\"N)0
M@.LRF]&DV/_B.63GWP4,A5I!$FY\5C)/IDW$S'*09 NN&E=*8S3D_#!E2,9[
M> ]FB+(<X:8YP(.QA#2";54._.R$CM01<J#GV 5%K(.\6%#N'C0-+RB];5V9
M_"EQ.GP84%-(B%<BQ^SALC.,E/'AS\#<Q;5)<9I+MO?MD"M77%HA3*(IMTAB
M-H]BL 5FRYV;@BKS&,C5F< )OL)=0%*A.3FJ'31M<ICA/CE+"F?<+1A*%QP8
ML"0;:8V(R.\Y7T23Y EUVAR<1YB+D!*@OW@B&4V,XR/%=60*,;>8!>P1S00&
M?XL6#+4.R@ED;>'WB&]FZGXYP3FXG6AM ;LSY-+<2 !Q J_<(P>"<8(\X**1
MPI>J!OD T1&#<[K*[^P;LC%?%5P9Q9?,'Z<!D]  3*5!DF/Q  -E@C(TCK[Y
M8*XQD*4;;+@_C_P-['%PQ/'_%8R6VU#78+.BGR^(^S&3Q%_1H%JEH!?!LL(H
M)^4J)8$9ILXCROVR=0C<!&YE_J&O93'ZJS1;T%X&^;3R)W28M5M426BZI#&\
M&\^BF.D5FX<0J=BSDEB06Y/9T6F,MFKC)8(:G\ZPP'M;RMA29$*[U'X&LJ3Q
MDN:@[?Q$DR&(MOEZAK7BY@A.0+&)!"J,FBEX^?B+I5K-\"M\(11LR-N9% (D
M"*,7? K'C[5')T!M.XV%9Q0RY#&0=T!MC]W#K)F;QN(K[]XO(]/"(Q(6GJ2Y
M$"695\8"< 5"W"]AVL31/<:AX!$?7845<0-?91PGCVM;,;#DE@%7YS8_S"+&
M_<P=+3VWD'1X<1((&RS,7,"B-'CT/2]>!$M'B*O<SI%(!V*4OB6<O<]+B.G+
M5=W'D>.Q4 K9%5<U_ZHV RY "<U]G#!ZB^R1!>!T9=9;>5'Y;' 9;I!Z^3,I
MSRQ%AP/"D6XH@GDZQST7/\.7F>MP:1(5T]AQ;S+U*/EB9>'")'ITP(>#CUS"
MN)?<@:^M\<"J2>9P8<:CA2T$*R!Z*NQ"_"W\37M"M^_2BYY"L8PEJ81(@['$
MBK*]CU&G/H+7[@1"Q:Q.#U:1[V1FFRY9=7\O$%#U6B]PO*\7N+)#V7X \Z?
M_4@) 7*O .++3L:F-^$4=M9R\MDO)GX,S+D4'1D-_=PK6*54B33E:3^C,,N4
M7>I+Y' 4<6O*\EKLT.*_>+4?4(H-"9W6>(FM0J6-+GO@.;SY ESF/R(L4)']
M$H4@W& X@9-;EIF#OPJ874=<:+O?0-/YZ4R[FN'>_I49MZ'V6QJ[8$\#@UP#
M1,4(&,W7OA9H;I<N1 KMH N%:!,ZQ5\>9 CQD5-A7:;)-P3'AACT1"JB7L!X
MH/0+X6WV#>WQ'$[P5(HHQ#>E)^,LQ-CW,K @'+LX#R8 0''2B9B"]($NLE=U
M? 9=4;&'[]X_)[Q!6,0)"_,)+#<[=]9!B+DL1JFP?;%3%G@KWWRO?04$"ZLV
M"!:9';J<P%)CL/R-S#5?4BISQ3:7F85.2\-YD9 :^:A.6/:-9,!5K*-RQB@4
M\-GOI2^9_52$#'C5Q$ $X4 +F$H6MBA;$GJ^IJ74P2&%-MQ*P@<6@GV/04^T
MK#;(D'\QH\#G2:9MJX9;(/=@(!7H 7."(?$QE@50,F4IE2/J4VDZ_!O55/:Q
M-%Q^O]C0YY@(G0T-12OZ;0*Q6_D)>'T+=>#C4NYG7@ZJX7B.XD\&:F9._"=H
MYWGLNT('A=E<42PN\#=+:CZKNU?7L"('8!4JU?>Z9BP4>5F%OS2HV2N?3FSJ
M=A%UVA*ZDX)F1^WO 79<Y)9]S8#-0*.>&]-;_U[B1)^7PH?+0%5)66<G-\+<
ME6CV5R ^S\]N@5*?0%XL2A%/CI^?^4G"O+)97 J)HKQ8-;B>=^/+'$-6R4%6
MB6&"57(#]'H4S"CI\-_,>\ 7+[4[)WX0 ;;/,^2&C%9 Z]+PB,[\C2OD]E8:
M'X:YJ_'!@BP^*0\:IK#T<@@PD\_KOUX)758YO1P\G43D(61*5**EY%5)2,Y1
MR):\:8%?T)'1# 2L#",5 F*:;0M/4'8_+)Z+STN!"7^5>@^/0GT78U+P63%=
M$5U?2E70'<D+NLCYDQ462Y)SDK_&21SCMK"I4B/@%KA..<*Y0<@B.JYI5P&/
M=#GG>Y:@R%ZJO-CG?Y9CST[!FD4<5Y)@N<_(R3G)1,@6M=_4GR\%=W9F+"R1
M*)EJQCMIJS ,'>8! T^;E2)4A=N%HZ-NA[7B!ZH_)/(7WN7F&"]'LR4ALAT^
M1*\BBV_3JYL*<L]CTJT:MO+ ]!G=L%4U+-9T0S8OM,7S$SA</"Q7<$90/M]9
M 1].6X!8&#<5/GJT97/8-WFTG:N4_+@CGV<&APRNV<!22KR@\?,# K2\LOA:
M'C+B3)RRL16F@H^"V,PW4APIH$!RLX^@,2*<2&2,F$T9T.&1Y9$_<>8!$XI
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
M&@''PO=H+/R@ 2/Z>C$6'@- -9DP"(X(CG5$X6S%'!ZN-3*"(X(C@B."8SO
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
M'FK6H^&:UEMB_WP<<71P3&EK!B&DE3X=KK)IWRT/S($RM%19&\?JR-YH%,2
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
M73S?GF/G'?^<DH"GX:]9]21.R#Q.86VP5^(EU ]2$L;PEA@\_*+ZF=\6WT5
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
MC\8"UV[HYJG9E0!4[LC-W4?P#\,\G>Z8PMJ(AFE'Z1'0ZLYYZXFC:8IJU-^
MJ"N%^BWJ?M(XK=@C($+<>=:Q<VB:B#*U&4==LH'*@[;;.,I8WQN7K=?:0T4S
MI(E35Z0&'=,^"DANQ1K*0,=6M>AC;\,L_W3SX^TZY*8#C6G7:QQ;L51IS3,[
M;\"AFW@ '=4!61-W68HYP @,^D9;)CV+%L\)38,DSYJ+MRRD[+PEN%YQF8HC
M;X)J5X0(7:4^"D@A#[HM;79.5^0!/:6U=_U+5(KQME'UZI@.6'*;E,_ --"T
M0Z^I.>JJ [)6BI8J+>+7>='JM]<T\O[* I971R[J'XN>?;Q*A+M1E0+#?EN)
M&S093H)#)PJ=J+2,AJNZM*G(79$'=*+6WO6%%]W58LF]DCS< 4MOO2[2#<6R
MY,W_?2L9NR*WZ'8=PNWJOK#FLFDJFCS5V'O9Q#JN&G*-:QFK>'1C8[VN/-R
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
MTF#X[G7P60NJQ9;VO/VP/_^F=)4&V8$U#B1R0UZR0US&Q71,/3J[!9DV-(4
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
MJ<;D-.!7QQES(Y^]?SZRMLJ#+Q%R"^*OX&##1]X.AQ\<U5)M1]=MV)]CR1N
MJ^E2)N!:QG&'N![YYW'S/=E\G\>H%L$Z2O6!;NYAORZ7KG5_FB\10WP)SNYM
M"M,9_1V$N9Y+<9)O/1-7>\QH)5_A)%_D*YSDV[PC.AX9X9YWP@L!,FF3>=]"
MHHWT;O84O/6J]/]*BT^^QH7M';VXP0A13+/^1DB-X2E,#VJFDD5XJ]R%:+;M
MN93B./7/:V\,QR!X(7@UA!41O"2 EVKI"%XRP*O?>9_?* .Z>5.%^.!6AO&<
M'_ JQ(U\0J.[(*) ]^CN+1$/_;C'!/57+)F*-9 6@^V*-&%,L(\24B1Z*:HN
M32FA0*! M%P@;$4?X(CKO<VM!GF/]=EAUS0,85T*N:,13=PP-\%<?Q9$ 4MY
MIMW]+A'_K46JONJX(YMGNJFH-K:SPQ!.@_17!X0MM_2&BFK4/TD>90MEJW^R
M92BZ@7JK'G,2?:[MN*:.<K3&!)./DAJR+47;>RZQGH*FIJA#]6!D; R384@)
MX:U!\(9H]J9^ 9HR-.4=LR)X(7@A>"%X'0:\=%6Q+&GGTPA>3[Q-"2T7Y+9*
M6-^/X<H-DG^Z849'8MS4*/)_#=S;( S2@+)_4)=E"?6_1/#H+.&9'K" @*TV
M>MBB!X,]OKC41O;8N1I=CJZN=%US+O,>#%=#0[L<'[P'@SPQ6M=P@66SF9O
M=7G+A4D0N9$'#RAG>O&CFW!)9C(KZ$S<E$S@A9![_D9XDP67)"7ER2TG/3R"
MUWBLK3Q]/BMLI^T4 :!")(68^<!1>1>'CUP87B@MW)UPK[:%:&M;!^.#90]T
M2S-M;>@X^K!Y;1W4XQ;WFZUN38";;\OF,?:+1:ERJ^I_S^*4^DNB?DW ,&/+
MST'T(IF/L^B1Z-M%_N$F?])7YD,=9X&\S=1GKLHYAS5P?;EI3$Y_Y1G0RY>M
MX>P8Q)SZN>\:?B28 "& C O*OCY@Y#B+_7++P%L5GF_S%O<YFF=KY%A'.48Y
MKI_[_C>*%\)!"E9<_Y^<08FQ-5]BSNS:NW*]_7*_R;=R[P'IUP:Q;PRQNHN7
MR''(<<AQQR+<GE7 6LM5Z3_BB#Z2F0@AD"!B:9+-6CIMNJGGSO7M6'K:BV)9
MTMHZ=>7H%WU#1(#>($ -\^40!Q '$ <0![J" W7%Y-KN25S$R9SG%%%R&T?^
M+@Y$[TK]:I"NSM?[861(0F2H+P)FJ*IB&O5W*$;A0N'JG7"A]CIXK\FVVX8W
MB4B$?R2W01C68AJB#'5%5##.TENIT U-T>69;2@1*!$MEPC4$QB'>TMRW!G?
M*P5B\")#48N('@UZ-!@R:)FVZHJ :8:NJ(:\G@0H7"A<*%RHO3 >]S:6N>92
M2^'!]9W5HA!U158P_-!;J=!,Q90W%AP% @6BY0*!:@+C<;O&X^YHY#UB4ARZ
M,1@G:*6*ZHJ 6<I0KW_N-8H6BE;O1 MU%X;@=BV\SJ+ "^9NB"$X]*TPXH 1
MAXU6FX$9<2@/* ^H)3 "]S:6N?3B*)X%'IE2_XXW]4\>W,07TPT2U]NIUTU;
M>BPUF4W1LT;/>OL32/2G4:Q0K%I@175>P/8,6+7<B*I,CZJE\>YA[*+&(0^Z
ML<@_R#_(/T>A#P8,#A<P0,L2+4MTW=!UVS\BHMHH6"A8*%BHN8XO8#U/XKF
M[V!=%.X#XY %/LV'*E>'0-<A<BA971$@=.%1*E J4"I0*HJ[=,4R392'C6;6
M#ZD8PKKN^C5___A#QL[N7'?^\=J;4C\+Z9?)E1LD_W3#C.9C%$>17SG;^8=H
MU$G]+]$WWCHJ <8X=UG ;OBOW@")SL/8^_/GO__MQS4/#J(@I;\&]]3_'*5N
M=!? /?F/K-XN(FGPX1N=_'1R-=95S?G=_.-F?$("'[YPO?3L2M4O#'U\;FA#
M6[--;7PUO+P:6>=CTQI=7CK&R<]/7E_U5=P$,\K(;_2!?(MG[F9AK=P>!A$]
MF^:C/35=?;<B)3:(A#P.'\UBX-7_4)\$"RH1-Q]%+:Q(EL*_Q1.23GGL,034
M@860TR"";^*,N9'/WK]\!O?2QK8@Q@IDJ+!Y(1M!Q$=YB\_5AT9Q,H.=5NFE
M\6L6#Q8,2SP:AL4U/YVH)^(S2*-7?M[]-3X$?CK].!Q^<%1+M1U=MV%_CO6N
MG$ +XAZZ<T8_EG]\>BKBRR4FZY!5T]?BX/;N3[Y"RWCW.A"M!;7\?FW/VX_\
M\[CYGFQ^MU@ 6G+/\*;]D[7W4(WBX[/9VK\D,7LY@G*LE5VX2?((E&ODXH1Y
MA\X6BN@!>&WD>=DL"UTP6ALI"X6Y+>*R*!(H$@=@N=]HVDA1Z([.PLRE];&%
M<<#2)+C-Q"%41-.'./GSJ+.\&W$"N@,72IOU^2J_-7H(Z'KB&(ZBVFKM%.I*
MU!:S3QJ4U]P(;D,@0B!"($(@.CJW(1#)(0[F#&+.X,XY@[-Y2/D1;TJ]:02O
M^*[W68+KA4LS%-O!WD<8F\3<J T28BNV-D0!00%! 5DO( /P$Z6-'>N*@&#P
M?(-EEC%8(DU(0D-Q7,BFP1R+?7>1-T>Q56D66^<](8S+'$"%=5;6+&6@82DP
MRAK*6OVRIBO.$%L18H1O*SORMSB"%SN;TY02]RZA=$:C>IK&M%VLC(&T0[RN
MR Y&+U \%EI'GGV'XH'BT37QT"PL%#Y0:*_E%MFY&[J1QZML>5WMF'IT=DL3
M8F@*X<7'T@S[E51W8_Z=^''&BU_WR77?^(**7Q,%M\^RZH].]_4B*R^9Y#52
M[Y-M4@=EZS\+5)6!+@T0WT[?QK E1I.::9\@A"*$-A-"+56Q-7EA/H10A%"$
M4(30/D&HIBJ:9AR?OHUAR^9X^XV)D"VZ4<UW;ZO5MP$1C:(5\A7R%?(5\E4K
M:/4FY=@@IV.SX>&\C9C.8?CNM7XOS9F,B^W+NM *ID4BW;@X @HU-CQ#(4(A
M.CR38HNTYK5(ZU02;N,ZH36#+-)"W_7M6/9$";G-@KH2.VY^V.7HBATA "$
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
M1<$@[^B.4X*Q(!"%Y74>,8:.8IH83<1HXC;<4A1X1'>[SU3;WBOJBM=CJ\K
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
MZR\$U'6<2=-(_.B3J=I%X,4Z:P1@Y),&6<9=,H"O85'N/$XP:+HT9#!BVJ.
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
ML"@)KJG8\_J^6)7Z(4- ^E'$0CI^_D_9_1*+/.?&%/ R7L 1WM:"]?6VA$=
M\_1RQ ">IYVN%@L ]7\)V7.2-?SK>)49-P4] V!\G93^]!WB':N6''7WF9/,
MG_GS^O#Z\/KP%WUX[>8ZUZ*(VK*+'[9S3UT*\2<:FK,"E)\S-!&TWU!CXE-C
MXGB5@"&G,>^2,.]B*L9^!4,1JYF'8+/[F]X3C:0-1M)FL,>/6%.O$4\CWE,C
MWI<X\\-]X?>RDWHJBML-US:- T=![8V!3R-FSXY"=1J4QA^-/QI_-/Z<)WPT
M_FC\T?AS(OB<JJ3';KCN_8E]8]&J-O]AK7F9SPZA:LM.=UIY #@.&&[=3FUY
M]V>!&[J%[QDR=,V)-"=Z$#BNU35[G=IZMIP%;FA.I#F1YD1-XT2VTS%M2Y<X
M:TZD.9'F1,_*B5J6V;;J&_%P#KBA.9'F1)H3-8T3>5;'=-WZQC&> VZ<3^.&
MC0R1IKNI?XOQ)%C82_6$V2&IUA?8WJ2:ICI=TV[7-OWP4BA'1PXUA131";/7
MJDWH: K1%')I%&*;+:^VOK&:0#2!7!J!.&;7U8, -($\NSODV0VS$WL]&NS<
MZ+5-M[X1$)?")'17[<I5#U2_'#+K8?_ZJ^>M/FT68SXC##P[P&F,TQBG,:X1
M@#L;8&F,TQBG,4YCW/.7]UQ4>/0,JGC. Q OR_O /?:>93HZJ*5=DMHE^6)Y
M@.MXIN?HU _- S0/>*D\P+8\LUM?1J7F 9H':![0-![0\DRGJR./F@=H'O!2
M>4"WTS$MK[;Y99?" W0#H&>LK+B40=5MU^S51UH77[2DXT!/D%![*;3E.&;+
M/23C2=.6IBU-6_O9A6:[IZO^-6EITJI?;)EM1S<9TZ350!?-66#;$_ANFMT_
M@U9YEMEV=0>QTSE[7DA%R2$I GMG(K[$A$,=4M#XH_%'XX_&G[.%C\8?C3\:
M?\ZFX.)EA%//H!+C+*P[;=;OEZ_EF*ZGIZ5H]V$#Q?U98)OF,WL%*5S+=.W:
M\D+/XN8UG]%\1O.9\^(SG8YI=W680K,9S68TFSD=F^E99J>EDRXTF]%L1K.9
M$V;[.SVS;6L^<SJ?\$6Y?O6,DLU5+<MLU3=O[%((10??7BQ!V([9\W2!MB8(
M31#"EJNO,$53@Z:&AE.#;?9</7Y'T\.SNRG.PZ1Z@>T[VITZ([67P@(4U\*[
MS+\.6=7S3[8Q!6AA$+&K6SX QG:L'TJ81AX-!:S_7J59,+^O/]W,"%)CF;"4
M11F;&3<LODG\Y2VB0WAO7/LI_'&UC",CNV7&%#81+UC"^8SGV-T?4\",590E
M]T8\-V;Q(I@&(7MK&/+M\R1>&+Z1PKG"X@6&/Z5E\/)YG!@;$'N$]&O_4,-;
MS#JV E=9RU;\:%8+9+IU; >O-XLS/S02B3<15@5Y?-H,WRU6"9GP0+IDTRSX
MQL+[MW6<H,^1)84W3UGP#6F8XQ7B9.HO3HE7;DV76<-+6F>&5[5LI\ KO^*6
M_13_?;T2;1?./2P9Q,\_O5NE5S>^OWS_F=TL@/M]8LL8Y&!T,PK2:1BGJX1]
M ?X["./IUU_^\C\_Y8_?^@D;(&,<QHLEBU(_"^+HXQ+_MQ_-/D13>!ELY(_0
MC](_XC"8W@./C)"7?V+SGU]-1GB$?[3^]67TR@AF\ =_FETY=GOL#;Q.U^T.
M^ZU^QYFTAI-^>S!JM5QKW&Z]^F5->JC@_1(L6&K\SNZ,3_'"WZY3GH7PH??.
MV#1."'#O5]&,);@=_K[/&<#[BN!KJ "N1:IV3BU4OP!'PEW[T7U)2*:(-%=<
MG"[]>\2W%-B7GR'FKL(,N>E4.:W!ON//##$G#=(,R2!%R!@Q(9H!4AI?@10
M;\B28(I,CS_BW_G)+ 4AK.S&N/61LE*64)#!0'()YL'4B%9$6OA^W",17(!O
M7F6W<0*GFQG7J\Q814&:KO 3_"EDK_@7']"]4!#8=Y9, ]CVVG;AK0D]0-N&
MV\ 'UO<-&_[G+8MP<^I)03^1KYWA:_PM!\8'Z?5L9M*WY,EIXZD1 7G(S7/A
M@9I/'(<"4',_2(QO?KCB,"AO'Y89\-5@X>-7Q6GI:\8,_F2L4,&!K5T'$>A
MP,U"/P.=FAF+>,;P"W_W(_^&X;WC/I%=X<62)(,SS5C&DD40X4OPS?YRF<1+
MP#)X-6Z)XP2]BZY<;$4\GI8VS]DBX-,LQG]/8Y,C$5 9G$.Y[SGPG3B!YX-H
M&JZ01N GV,V"?PUV\"W 0N#K>WBC$:\R?(>R'7_V+4CCY&%V>Q8L9YTT4<3$
M-Q'\>UI-=0D+Z:*S> T/^#V+RT?@P#4G 1 (W0\#DIDA/(T[T*!O\]?1C8LO
M$O8@BB<^0N(*H8)Z-CR#K@&NTP"5(O(LP?:(N2K#?'A?RI8^<$V0<<8W1 '8
M"LDL>".*45RI4@Y0?,#_+/YPQQ)&VTM7UVF&I&L:"^ ^P1)EK<HU_ 7*8GSK
M%OCDIP$61I0/."?VD&^-[QX.MF9&*"RG!%P\)P<</I6P_ZR"-,@*<" +NV:,
M<\H02&;VUO@]KMYA&>3X9OD5XKI(S_#'.0NDKEA\F,'+XWO&@("0;<3(HU%&
M5>]*  SIUY LW[%^%"\')2+-_VK_B-N:!0B>:<:YD+($MAYPF5A:PEF\,-$
M22*X?=S)*D) HSQ90X%5PO>+J$9G7I,$P%S" $Y6\+-BLP:B5XIXCS(@_T0.
MNQ@@EX!R(Z]]!YX0K(F!HW;&">JZA#XYSF]>-\<?V'R_A&)[4 *R*]JQ*:22
MLIL[OX09UQP>]Y*LMP(%CX%G]!-^C(T7I[?Q*IRM'6\-\R5JE74#?E[.MWUC
M"A\(,OS$&BXGR&\4S@3,)BU>*1#[UH?+*7 6GZS$VD-UY,.5WI+.#"P=M0V0
ME\*8 WC38X"(N9:]AYKL.DYG.+#&@\%@.&SUAT.G/>!J\J#MM#N3DZO)IQ)1
M].O&-.#/J\7"Y[X5!81& 4-# K$YZC':><2(</NHF< )9ISB@@AD$FI/()PR
MQI7DA,U#X!U2+8+3^B5NIX#%+\"R%& !S2J=@H!&4F1A?'>\LB+<OITU7_AS
MFDR_^\2E "(?@6<*"7*B<YX<18; .MEW$%;)4AP7^9]OA,PG%56HI:0^+$ 4
MH/H$>JC06&>KJ32LIOZ2P$)<-?+#^__2@RM +U7-!6T(.6M"LFT%1T9>G_GI
M5U",00,'\H/]XE/ ,5:H,J\2L8TI2U-4M^]N@<_*/1"O!F8+G/<B<>U/;MR-
MA9A,$3)(AW\D7"(+TISDI/PY)^7&HB1RK67Y?)6LBFQX0JT@NS?N@NRVQ)(
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
MM,(8Z"TH@7>^J),ITL_+U2X9)>A('.)OG:^2*,@K;.;!=RIV-1)2-WAM:PW
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
M)N1LH7<.);=_JTY4^$(NQ(05+7FIT^[G(;Z;RA1B)4]6W3)Z^2.>,HNU4,N
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
M0AO0Z_^WL'0QPX_W>RH5'@=S<_V0=W0_M.,\F,/P:3*V=K47YT,9$S6&/JN
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
MYQ,P*]XH2J;RMU;EI%&E#MCN"QXO]?-.'\H-*Y_#BRG#:GT^(]7UE- 88)V
MD @I*Q,M,0(Q?+?TU&M^2J4H1"G%N+Y7@#!]"#/6"%%Q>/"6(#S?-$\'R ?&
M/GCJ-Z5JA6K.(EZYGA:]?DQ"19E,N O-MV5VEHD%8,>5^S+#6</I-P*IT>3;
M=@CAIU# (H:L;N7Q19*9BFAH!]Z@SK([&D'8-*%OR8"]7"RS8-:WHQ "(BYL
M^E?>D(&W;PAR^YP7T% 2+),6/->7^"2>XKV*Q;_EL#SS>BWQ.#**5#0QT>.P
M,S= =]GPW_#6,VC'Q%.)"6&X-B=>IL+B/7'E5,$;U$B+^TLI:>$.>UO[O&\[
MZJE7BZ*V-.\!R3,IN?7 \8,TJ<S_&M TZ00S]3<E;2J]$,*V*-K= UAI*1Y
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
MQ?$G(IQ<@!GVU'LLY$U/"<@F3\:/0)3@0*LTGF=W/O:XDL/-3#E9HC38PBS
M/J475T^\%+7;5WQ<! Y4!6#Z<N=JB0#"H'+NW*%E'V5NBWP8IYR_G\=Q%L49
M^PU^,;[3GY(82? VRY;OW[V[N[M[^_TZ"=_&R<T[Q[+<=_C/[_#!5^+Y['X)
MSP.A,V!)LU?P:O%N8/CBD=L$N?I?B8M;SF@RZCN3B=7M6IV.[0VM+G'QMN6-
M!BU'OC;TKUDH./^N-?]?>!V6MP/?]N%R7QGO=NX'WM+VVFUWX+5M#\<*C7IB
M%H37[8WZE?O9L>:H_0S;\.*V-^ZT6R.OYUFMCI!R'7OD#GN5^]FQYIC]V%;+
M&8T'UJ35ZTX&O9;E#KMB!M/0[O1;5?O9M>:H_72[CM49C;S)P!J,01-H]3R!
M"Y-.=UQY7[O6'+>?$:!DRQMYX^YX8CF6T^E(7+ [G6[U?AY><]1^O)'='MMM
MIS<9P$M;O9'7Y^\>=9UANU.YGQUKCMK/8#3I]&W/L;U>NVUWAY;+8=\:C@=
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
MQ!L\*)>TB3=X4')J(V_PD&S71M[@(>FS3;S!@_)Q&WG 0Q)\&WG 0S*&FWC
M@U*0F\AD#LII;N0!#TF2;B**'I1UW<0;/"B-NY$'/"0OO(DH>E"B>>D&;0N,
M$-=S+8"#Y4RZO<X$;"UW[()58@_/Y@8/REQOY T>D@K?Q!L\*+>^B3=X4+)^
M(V_PD.S_)M[@0>4$C3S@(?4)S3S@ 04/C3S@(144C3S@(249C3S@(34>ISF@
M>$A6GCSF _LTKUP' M]4PM)XE4SQKXL0]A#=_/R*15=_?G[URQ_***&\(^JM
M_XT9UXQ%AC_#WK:R&>D\E"U<L[L8 )Y<Q1'C_3Z-=!D&F<&HRVO17!8[TU)[
M5_'4+/@6S%@T,^YN@^FM$4]I7(KR^"K);HW_K/PD8PDNQ*ED;W]Z5X+EWM ]
M1,J?'KJR:^RY0==Y-'@/,$4O"7DWX;7VE]_@EU_^\M,[/&/P'O_WE_\?4$L#
M!!0    ( "Z!3DYLP8A),QT  .12 0 1    8V=N>"TR,#$X,3(S,2YX<V3M
M75MWVSB2?N]?@?5+]YP3V[)SZ3BGTW-D6W:T:UMNRTEFGN9 )"1A0P%J@)2M
M_?4+@%>)( B*2LQN\B&Q) *%JOH*A0)0 '_[Y_/" RO$.*;DX\')4>\ (.)0
M%Y/9QX//X\/^^&(X//CG[S_]]E^'A_\Z?[@!E]0)%HCXX((AZ",7/&%_#KZZ
MB'\#4T87X"MEW_ *'AZ&E8#Z\,S=#]R9HP4$T/<9G@0^NJ)L<8FF,/#\CP<!
M^3. 'IYBY H6/"2;V"B0>>Q#-D/^'5P@OH0.^G@P]_WEA^-CA\X(>CYRZ.+X
MM'?R_N3T]<D!$ (2_L&9D6>;<AXFWY)R3T]/1\\3YAU1-A,E>Z^/Y>,)Y"@N
M3B@AP4)?P?79L;]>HF-1Z%"40@P[2;WR2IL5 GXH?^9)K2GD$U4C?J)$.>R=
M'*;"2*K8( TFW(?$2:1YSDG_]%J5/CD[.SM63Y.BW-45%&1/CO]U>S-64!_\
M_A, "GJ\6%+F Y*#+!&#,W]#@M!8;J@#?66:47DE0*[2,?)\+K\=IB2.1+L'
MX+@""T*3,PB7U=G(5@Q9B7ZIRPZCWA:PN_.C:-5E*&]INS.D:.W"D,F0"]C)
M5Y'?#N-ZA_*GPY/3>ERDSJ$:%W&]?7!Q=@R9(Z$6L#G^(7I>>I! G[+UE?AN
MQYG'V :504I$LG@F63QY5X-%19F@F1P^[%G*UMHK'Q74$M>HW;Y^<+!A(UOS
M+JRX1VYVXV1W-K* O%7?7$LX,A5DPV^K-<F1<S2C*Q$*!,1G:^F9?K5Q:;IZ
M\9?#E,B.S 2,B>AK!VZR%9-OM?EQ$2[U];RHDORPBW??((:>G7EU%I):ZE-M
M)C!9(:X"C==50,E4BSX?IB1VXX1 [/#*UI'6"C_6M@N.'4GNI H3<1WYX3"M
MO",#_I)5-XNDEOID, M("/45)?E3_.-RB<F4AK^(W^2H_2$>NA_0%*CX^$,T
M<)JCZ.,EHTO$?"R"J<R40A&8,S3]>"#G*X?QY.0_#O2.1-P=%\DUL!E4J$%*
M5'$"3PEQDS(94Y!N^^,!%]KV4"3Y#Q?*1=.J0HDJF. &R^3!25691!7D-52<
M)4-5Q1%5N)BZ[V1XDL"C* "PF%SV'8<%R!7!)R(<\0,@GWY^&.IF\:KE[0HQ
M[9AZ:CR_GY[TSDYZ/7 (+C%W/,H#AL27B *(2?QVO%UQBV3 D3LBOZO/VX)'
ME:,BAHI;/=6ZWF9GT%:+?HSU:J_MBSDD,\2'Y"MD#!)_/9IX>*9XY)?(A]BK
MC(<%21-B;WIG;WJORQ 3/T7M $Q W!+(- 5^"1O[1XO!%6KPL1\(@?AHNO5P
M5W0M:);">VH#;Z8A0*?Y(AV^CW#B[> PHVHFE%[WSE[W3DI1^B4DU2X(_@PP
M5]2L-)\I;1RGQ"BL&Z?2ZBW5<?9SV.$KJEU'P.B@3E]K'51*9?/+8>R(6ML-
MLI_M79*QOM$WG;[6^B8#0.UV4_T_N737XYL[&2;Y>(5VZTB%9,JZTXDFG-L
MJ/_'6))^!<9'-T<@H=_UK%CE]P%SYF*"=<^P@_J>%ZU_U,.QA&@IJF\JH1JW
M!E1S(&VO]2A?S#%D]!$Y<T(].A-S]AO/V0E:(Z720>]]"9XA=9 E#VYN+CK\
M=%K?9X_=I8%2M,]V1+OKQT5V,"!\#I?H>C&9UQMI381*O;)Q$B&^#LA8$@>"
M^J=NJ-7I?)]=UYYL*;#F.<D6L%TO+0+Z>H6_"$F$"OF0[#;,ZDF4>MRR*/CZ
M"P8QW5= 4#[JP-K0]#X[9B7*I="6A<(::+L>6@3ZK<Q!0DBFETILZHVE9<1*
MW>[;$FBC!E0V+ ^A[4;5 NWOLP-7(UT*\[OJ,'<]N CV+]C%XS7WT8*/^SNA
MJZ50ZH;+^NH7?(E!1!:,C_K= +NAYWUVSRJ$2SNG>;57AVO7-XL0_XHFW(&D
M]L!JH%/:3\N<;43[53><%F&WSZYJ3;44UU\KX-IUT0V8+R"?RW\#H; 5]&36
M0Y^X0Y5.*H](66!:3L*<*?5&LP,MZ;U2_X,,V5< $A=D*'= I;KHNZYJ"WI#
M,J5LD>E">\#01-V<=_-&LP*AAW<;7=F1DV9!IMTVYN"4([2@S,?_A]P+ROU'
M>@4Q^P*] .W/!,P-E%I!;K'"W@KBEH%L&O@4R,:!:KVS!0U4%W2QI"3,E2LM
MO#<#V:754JO)+3];6TW*CLSCLZS665,>JL%TBAP9"-]"/V#87U]"'\DLS)70
ME$QQN:)L+"I^#YO:O>U2R\K-!JPM*V$*Q%P!Q9;*%XT9.Q3#U:%DK;.O$HRO
M&>7\,V$(>M+)WXAO2!9)1AB!\8^PM?WP46IWN=4B:[M3#(*40Q"RJ$IF1D1A
M>)T95C=#VQQ"6T+&9,+>&TTRH>6LIXV)A6(P7^ H#B4B B4^)C-$'&R%F*&R
M<6YZTM/-35-J"ID->ATD4@OUYJ*[T37ZW9.>+I(T =E-/NV@O@KD[O*M:&L1
M+!ZDB-X]7*NBGXF+V V"'/5G#*%J@_6^6RPUC_PB18EYA'R B!$0<@)B5H#B
M!2AF0,I-9SUE6#X@!^%EA.4=)1?R A45ROP04ZK:?*E=Y9<]=K*KF*_(K@1G
M*F"(F>L,S6QHUL%=*0EC6'?2TX5U1L!;&<P13CWLRIMVSJ$GC7@\1\AJLZ&P
MJ@$7$<2][JE ;BQ4IOJ'A&5T-Q[=#"_[CX-+<-Z_Z=]=#,#XTV#P..ZP\/D]
M9$*J.?*QX+,&,)MT2E!ZJWJ/)4K@EPW:;>U!B;:B9=<KCSY5[$EZ$F:LWI3T
MJ/&C^',[N!,XC:[ 17_\"5S=C+ZVM6]MJ)@NA&!S1#A>H2$1D* :>&F(F9$[
MK8;<Z/;^8?!I<#<>?AF X9WX/N@PU*F]AL>L1+D$W1(?6HYNYU=SF(R6B(7W
M>^R.:X:&&<&32OUS=#]XZ#\.18$.IXR.]]09BPB6(%BI#Z8(=CTO!\!X+C0R
MIYZ8]'*Y*.ZO=P=30\N,X]M*/7'\J2]<Z>CF<O P_AD,_O@\?/QWAZ!&ZWOJ
MFV6$2["MU$=UV+:XMUXBAE<J.79(N,\"RU1!?37S%HSN@IJ4#L@0:KO^T_V*
M*)'5.BVW&CGSDJ?N&AL]7IM;+!'U5F;AZO7/.5*KD#<83K"'Y:V*]Z&8LI4[
MY)]#COEE@![I Y[-?1&M3*>B3DW8ZS9;:AZY!(AB\U"\J$53+^4&+&-V "4
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
M_,\M]'W$;M%B@M@!('"!/AYHGV#/DXJ-R?!@HN8ILLUK1H/EQX/G"?/P!Q%
M+@Z +SC^>$ H(<'B@TL7$).A>" %.0!AP25BF*H;!3\>N &+SF,=5Q#@C['*
MV#ZZ.=KB7_.@@>PG"]4BOB8N9"[_O'1%R"SBBG>]LR3H%I'<5^S/Y>$^E9*Q
M6%(B"&^)O"=BC523^,&-LIAY3FSMPQ<3(V5[AHBS/J?$Y4G&=^J_$O[+2NTB
M2/C+0@#K0[;>EF027KDKQ$ 3[.ODPX0+&_*KH90*LH60YD$#C6RY]**7*=)I
M?%_+>(D<N:LTII[B;5NR:G4:8))R4? <.M^0.Y:O\\9RN==DG/;E&V:FJ<@K
M$:!)SJXH&T,/I7)<HHDO1KCH6W\JAKHKO$+J?6[G2,3YHNP*$?4]D3G1S-[)
M_CT42 .6D301O*;^+*C^+=0W(DJP4,S')[H'W962_%LH[G'.4+:+)1933WE6
M9/\>"HPL([*31.Z:^K.@VGCU"=:Y0=!TL1ZQQ2U\QHM@D5/6;C1V5TT<#=2.
M&,X#C@GB,A-X@HDJ+_>GL!M=!/W((.'AMF.\_7@!^?P>KL-78H5ZJ$WE.QJ)
M(QK36TD-!<EIF"BV(61?YA_-PC>GW:MFZ'3C=2DF7>U&L)D&%/$HW^?LBK(B
M6(;IJYZ=/P,L$!$SV!OQ,_9"9R)/J0J;"(1E$#_[8'/V9]#A=VWT1<S3QHE]
M7T6DNY)P+8G\&/5K6FVL_J47D__D=4PK,0"(GCJ>4^9+/Q_=7"H_RE>*<C]Z
MFV:HPYUJ-FPL+9QL2\&F'GWB<^3.!-11N:SL^L>["RAOV2"SO2\;7,PQ9/01
M.7-"/3H3YGES<[&Y2F N\O*+ M'>O1QD&)Z$:Q9?9'::/R#N:)K,MA)Y[,OO
M))R03,C@"!Z_NVAQ.&\K6J9\PT5+8VU+V38J-%VX<%IA*UE2^H7$*G8>@G$/
MR<LS,\Y!./>1/T=L^Z#5EE/9J6HSG(W:;^"CJ6:($Q)D1C2UCQ?^AY[]<X\Z
MW[+RUZ130QE^3.:[F$0@9LZ?('.?(),O8QO3J2\_Y@V@K& 3X":RYT0O#1I-
M'S#_ILYDK,/_-;C:5WA) +,2*B3C '5]11G",S)X=E0^MLR BS*S,S)6J/(2
M,9VEY%$F8-D6ETW!OTSDJJ8CSMJ7*Q;AKC]T_S<('4TNCK4LW+RH-MK+BBU5
M^M,'%$K YWBY/1A9%V_>OE^.]Z171C//!^IY5^&;)POE-==Y*7@3&7-G#U24
M<"=<;<AN+)=%N8;UTV(1Q8<+-76_@(RMHU>'\LC3RL%2)C@7"FY;NV'J*+3R
M2^H$ZK7ET5](W $1G*ZS;^?9\EX5Z[R\E8=OB(E .H?D6S+BZA\U#+Q$D&0W
M(%GIDA'!9KJ^'#P94F<'HG5(:;O$_6\ZX7W'OP]G++'\>Z7XTI/#@9CYT#5"
M8\16V F3"'.7Z:7KC>'*N+I/Y@(NL0\]^6M_(9.E$OWLE63#[*K0*0R($'2)
MKA>33YOCN>[!R\\EHFLID2NZ\12)MIF*E,6WSVJJA]SH8DKQ2]_SQ+ U1@13
M=@L)#'=)$OGV0>D[=@,K)U%!AGWHH8$:>%[BT&S"_KAQF>J]Z#")F!8%7VZG
MK+![7G_!7T0! 8K<\MA*<"UZV+P ^YHA85/L8HX)W))!]Z1Y I0NQ31R":98
M'#R;>^MD8$-N//AM"55:[.5'!&'Y\CUY(JK17>X?H$?Z@%98#.,%CBZ)#_=!
MJ+'K-$/BHD5X.8IR>/'Y2YY;?+,JV<AE4\UVZ*8YFPJ\O"'+.^V2) ]G?0D7
M4.Y[RDDG<A_0-)#[& (.-Q"!>,"<N;#5>R8BU8W4K-I4&FO")9+AQ21@7-49
M36_0#'I7"/$JNC%3:)I>"KN!#,]\A+Y2]DT3,Q0^??D.$.6\7:+8#R<3U4TG
M[(5/H[M->"K9KM6;FU@6R90ZK-$TVN@<DGO(?(*87%O=4H%%\9>>O]]B(CGM
MSP0DYVC@8;53^4@OY8$X.>5.MW&S47SU:@W(?HN8WMFN=Z[>8+L6]->WD'U#
M_E#,\IA:6S1M'U6IT+"EEU3H@& '+Z%7ME=F4["I0M[)?&8TFHZ648(J+]CD
MM2G8B,W==.M#<WW3DB$'9C-WK4LW%L! !@2CJ6*"RU.BF,33OGNZC$XY)^+:
MEMY=7$Q\-$.L[DJ1L#,BH)!90&KCIA_X<QIFWL?"F(N\^-Z&9,^'SVO!7O9*
M(75_&X%>=)]IM'R=E:E*I29)N8*B;B"@?1:$H1ZO\J*-VUA7&ZI]CK=6PO(_
M-V_=2/&8OO.^+R(2C1 %!5Y^AJ&X>YQ#\H@6,AM%^% 1'6,F2\G)H>P7R=+
M/66;.SY#,H","(O@=\@GN8WS[T7\+S/Q3!0@_GX^&FL,0_.P>38>+8[(G3WY
M<DCE'S=E,99X>2N/V(OO.@[W.[9XSSULX-[' UHF"U32H2Q.>R=O-I$P%VF>
M;>7XO:,KQ:W@^VV):-JB?P$1'Y]$^?45GOH(D1(9]65?ODNEC+I<W2_D4Q]Z
MCG  >5$T)9KFPC-R^9BIW_J>1Y\DR50@W:/&'K**W'!T6E2N\O-4$MVC!BP,
MC9TY<@-/3(*O CD9CE9Z'F14*R)S!^&E+[?=HRDRF=W()1Y31OQ>*39RDV>,
M/$_P?8V(O).T3]R^NQ!"<I4MOMH:J&T+O[R#T6<;90[WGJ_3(I$EJXV+*#EC
M\(R8@[DZ3SF;,303D[RA7 PE'#L;FR _I*6F+F[4%?Z+2HC)W8>P?[*-'3'"
MZ_4L9.46!F2PT._61-,T6^SI,'>WW%GVEP;X+!&0AKFT)>O9-@4;YC&*48GN
MU8OF4>)+M':VE6M@4:YYL;M:&Y0;2%"$LF*XE!M,#*N\;TDK)Z%5X088JN24
M19P*)- FISY\=K(9_AL"5JKVXHNG\LA"H([>1!G;HZF8+OZJ=@S54='T@LCP
M<-F01'G@V[L52=Z/O%AY<[\QUL^/:JQI'GL7;:O+;=2-+**2S"AVG& A=T=4
M%IDZ^!<M_^U7\?MJ]Z^&@;W<R;&M$NWN1K&Q\^5HGXM?J+'9?9P+;F;SOKN2
MQ%V9$29$Z8OX?B-9O'*M)GA$%\D16":*S"AUGP1+&7&T#QL6C&2%D9M=7 PY
M_?L^U*!3\'@7@0)^*#_P9+UCO"=$Y,)8N$;&TD6S1(:BIS4L25&KS[=,OPG8
M^EQP8HIV+<HUU;X^$Y9L2(GP9H((FF*?S^D3@5PH4745$?G0=(/*C89R41RJ
M+(=8#7NBU30'6A@[?\&7>+P6\_@%'Q_UM[(NBQZ^?&S\A?I(G>CTU#@V@,Y<
M3+J%[M0,>R0&0CEW$?T^$:5"A9=*^B@$Z2N:< >2?%JL[L&/ R>\O9\[<[2
MO__T_U!+ P04    "  N@4Y.3KU\%A([  !-U@( %0   &-G;G@M,C Q.#$R
M,S%?8V%L+GAM;.V]67<;N9(N^MZ_HFZ=9^S"//3JW6?)4UW?99?<'JI./^7"
M*.4IBM1.DK+5O_X&.&@R12:9 U.V]MKE28E 1. #$!$(!/[C?W^[&/UR%:MI
M.1G_\U?R#_SK+W'L)Z$<G_WSUR^?T,FGEV_?_OJ___/?_N/_0>C_O/CX[I=7
M$S^_B./9+R^K:&<Q_/*UG)W_\E>(T[]_2=7DXI>_)M7?Y95%:-GHE\4?1N7X
M[W_/OS@[C;]\FY;_/O7G\<*^FW@[6_1]/IM=_OMOOWW]^O4?WUPU^L>D.ON-
M8LQ^NVGUZ!?Y;VC]&<K_A A%C/SCVS3\^@M(.)XN^J[1R?KS;]]]_Y4MOB;&
MF-\6/[WY=%IN^A#(DM_^S_MWGQ9RHG(\G=FQC[_^Y[_]\LM2'=5D%#_&]$O^
M_<O'MS=$_.1L'+_]PT\N?LL_^NW$^VH>P^MOEW$\C5/H=]'\O(KIG[_ZL_$W
M$)EH0I<"_Z]'/I]=7\9__CHM+RY'(.5OC=EX>6['9W'Z=OR7K2H[GEV?NE%Y
MMAC,Z:LXL^5H3T;K$VQ=%.AA5L[F@.KI:7KPP\-DJ4^Q;6$^6S?:&R3W&[7
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
MZ60,)QTI#,3I$Q(O)N/Y= ]$W/^^T(*YH )&EEB!,!<.2:R@OV2LBCR:J!L
M@CY]0#365\]X^-,N[PK5!L2#!H73B?OH#,)*2:2I]-!C2DC2) A15JIH#T<$
M>_J(:*ZPW9#XWN;)_U)\C+-R>2$RET'^NG@WZ/L!?NS3PBC*I(P"":\X(A'4
MX!3'*%GAHH(5+>EX^-#R)SBT+:JJKWD.[F28^]G:+ESHPXY>CNQT6J8RAMT3
MOR:% FL=G T&62<(B \*35(HY!EC6-M(M'6'PT4\0;ATK\&^4/1B/BW'<9H/
M4UPY7N8>QDN;8QNCZ]L".9]!OJGU"[?CC@YO/]@"L[:Z*+R1)%A!$<,4(^S
M&B,I"12,3T$*9@23A^-0/F$<'E'%?0%U4:#I$%=O>\,B@(ZYU!)AS2AR+C)D
MF#:(<,RU\5RKJ \'E7K"H&I=<;=0^8_?-L4EV@Q8;(H"M1<;>>Q%NBYZV/F^
M7->=]J7*FL^^==KU/D^,]!CBVK"^WRE>%V Z@KEA;XL:9-&J&-85-^Y7REFD
MH\7P1]RV:G;48V&Y28:D"-XRDV .P?HAP86&7[R4B7%-%3]>>.U J3=*NUHG
MEU\NRI-?W9M([2E]K^X+[2.LVDH@\"D-8M9QY!V8IHP1JA(1.-(&&UX_H;]!
MH'.W#3:$P3NB(W&P^+?Y3GW-ECL]%E((#6Z:0U%$"6(Z@(/0%@6ME-2@8)\:
MN!G]A$)_] G2;+SZFA,/JX9M /'ZDT(S8@-V!IG@+&+&** *\D1C+#'64AT:
M!%GZ";<.$74-%'QP>/9 /=@M6\'='VP^AGX8^.V5B2+ Y*,4?$#F1$")$(YT
MH'89)Y4L:,P:6!5W0LKH)\'ODQC#CCWZ0UZC[L(];/QV]+.K^.PJUC7W/U3Q
MTI;K60G?+^-P]ZHJ]ND[;N.GX$::R*1"7C""<$@$)<X=<LEY@F5,5C4X27QV
M)H<^FL_>Y;-W^>/-F&?O\MF[?/8NG[W+'Q>_3V(,>_,N7X^GY_8R_G[ASOL_
M>[S3^;-+.:2I\K1=2CL]7U7A73U3WI?O^%W'!3,B&><PHMQ0E"@'!R-*![MD
ME(H+1@WUST[BD9W$-H;M*7J#/^<Q_;.?.+#!>XI39_WLPW5/<^6FO\+8(*/#
M#F$7-2Q(PB -_T-)$*RQ#M:(6I?TGMW988[64YP-ST'\8UX'^M%GTW,0_[X^
M=KY=T_'L>K3_ AL<L+8$.9T"8I)QQ)732 7OP"@P)L0&>U,_MZ5^]-G4YN@]
MQ=GS(Q^!]7./ZT>?(<]'8$.\Z#5$U'5Z!#:\I7/C0<?BU9@/]CK3Z->\?YR/
M(KG(8+(F!-:@18HS@6B,'OY*N7'28QBAPP&O?[Y#LZ<RC,\GRT,Y638_WR1Y
M$F,XT!ER6RKRT:WD"%P4*3!K!77(I@"J%90@H35;UT 1C-0[-7WD_ X_3Y)A
MCF)O^1>_7Y5_ O?S:L%V;YD7][M]3KX8TD1YVLD7/^69\G,BQL &[RFZUS_J
MF?)SPL6Q1^LISH;G,^7G#(VG.9I/>+;]]*'=G_ ^Q%,9QH$&KG["T*[X^2;)
MDQC#I[CQ/*=C_$C39'CC]9R.\?.@KI5TC([C_>\M*"O&OR;5WSGRWO^=RP<,
M/(?^AP3H'R?T_QRQ>3X<>#*C^6PX#\MP?CXQ./YX_7R&\\\;67\*AO.?92@_
M74]!M]-/)[U9R_=Z?;:5AX3AIVTK/]<H^>%7U<$-VU,T<W_.?+)G WA@@_?D
MI\YS/.;9SG\RH_D49]O/6I7AN<;)T$;O*<Z>5S%%6$_"9_NMUSWINWX+S##C
M1(+ 'FP#(U1$QL$OF$0+M@'S*K23.O,\6XXZ:D]QECQG:7Z76/.S)* ]E6%\
MSM(<2I:F^ODFR9,8PZ>X\=S9<._\L'\;[<X/"P\:%HD$%))GB$O%D8U1(^%-
M#-%CR5V#J_G/-5Z&-79/<=;\R"D:YMF1.?IX_7PI&G<+IOQDL'L*.1I_13?U
M=GR4O.;;O@]*TVC(23Z?S?_=.: %%.0[V]/9Q=WC_9Z[/0EAH1X[>CM.D^KB
MCB:.Q='%I)KE>?1R,IU]GKRQ9?6G'<WC5J:Z7^-.KJ#W/*7?3*I/P/>KZ&:?
MHI]7RSE\E^D7=EINV]#W)54D[!*EG"#"DT8R)H*B#@HE17D0U ;C:P7H^]',
M'5&\GU]D?,#25TVFTR_C*MI1ENUW6XY?1 !<KL*TAZKVI@V6)$O!&XJ$\V!$
M^DA1M$8@G2-_L)]BXT4KR2M=>@'=(F9R?)WW9:D<(ML[^%M76+U'NTC,&3
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
MT4%W]WO/]\, &GY&U=OL0*!J8^>QYQIWK'2HOYD4#H$-!(&"_[$>32<7A9M
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
M,Y UQ>'U0I7@:=AK+D_'V]=56=*@H$(],%]!FCL0@G&E@DU.H0$(.8M+/(0
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
MT2" "):"6B PDM9##BPK\15(Q;O#ATEW28'<\?"F6#2($B0HX8J&28X2JP4
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
M\51P@0,0BBM2Y(4[4_;42Y&@4[]%S;:&2W_[RZ6UM*5;)8_S]M:,4F8\UQJ
M8(-36-0?WCL-P^(K_HS0'K;]VG2"-@2F?U7?VZBI&"2[OS]#E(7/P8&P.!*R
M6&5C:$O9$%#Q&:$][-EUH_1X=/K>J3-7H]EEOGPS4_/Q9.B-KPI%;(O$@2I[
M876;RB '% ,,/23> 6<]5]P1P:D33!,PX#$Z%44YMN%5IYE,.HHH"18%\MXB
M2 Q"8(<&Q0;%E\YI>0NK.S77KZ\<BU[2^U0='=\#B,14>6*$,0P1:V2I!0I%
MK]%!M7Q.W;"@WN$^M:#KRY!HYS@7(95#CFF*(>2$ N<,*V5#EKFT'4@MZ:W2
MN2YQ2+TL-B3I-DJ)!,,H_]X8^3Y?E05/BBSENYC:L\5_K$?3R<7M9';Y(+#M
MN$.IC>8S#C@16F+-/%0<6F"+2,NM%6!0@\J /1\A5)D!SULS?8'8&_W.S!NU
M6BTF7]:K8AK^/-]FWI:YP]4.D:C12H85Q)0"A)@U'GENBN-7=C@ +GMU;U<C
M4W]6<V<P#C":'8*J0O&!FBV%N<)3P!B"PEEE,>2<XQT>'#+4:R)615IUH>VX
M=5@DBBE4OFA8QV(O.5$482XDQM9IJQ00!I62,Z[CY[C.O')]\*<#Z/HBS>,2
M,)O"+\<_A]W64>62@6V^)L- ,$(QTYA:*"$@&I6?GQ)$)GAB6Q\D'!#BOOW+
MI6VYJQ#]7T4JRZ%O<&@7]$$AJCB>JS6008J$"18T=QS(0!WLC#966,R$==17
MVC,9 (%]S-3'?%N<9WDUN=&W6_W=G4OV1.3576,?)\M_5J]:TG4GLC"X*R\D
MHM1PA'2P;CG=:4)!)_J,=JV8K=$.L9[=O$H,\:3=X\\@<,0Y?N"IS'*GH<32
M:&N85U1C94IP". G4(@E'?Y\?]AA2[#W9?(]T^.C#M6#SV4:4FB1]#RLXA63
MFG*A2ED!<8F7?&E%B]68T0BOE\V1))WOZ5%C&$K<=]<6U0>.^=2?O#^#FH"P
MKO'$<Q;L"*N=!CO9-%(I^C5;TM7C8R=:0*<OS1<58,-:ZVL^6^>_S^?GA4_C
MJ/J??R@C$&+#PC(222EY469 ^5)*[1L4!NJR2GH''&@-HOZ<1<L\O.M*S<YM
MZ/9T?K/9E-S&GQYE1(6G,^:8]#*L,JRW5A'IJ'&EW-"1^!FBRWKD'5"C?:SZ
MXLCO^2Q?C*:AX^K\.N@A6-H;F[LJ2RH]GT$I.&""(4 I1=HP!MA>=JC3/*>T
M YYT@59?3'E4M:A<UAUER,'G,HL\Q4IS08A'QE(@93ER&L>LC&9&EV6S.V!&
MFR@-EV\>5[_" 80)9(B%01%3#"C Y5K>:,G[3 UY:>Z.5A _Q?H%5 ,,N#)<
MA"G76\>0+<=0HPSF:?LWFJJM:B&#.)1>(A^2]&6D0H-AU-]]C5-IC#2"84\0
M=1X:1\+O.[F)U*=4\K:R"B-JG-:#Z73*G3AH#<$"6"4A"<:5=127VV0*FWCG
M5O\E;F/5WQR6H<.EZI^KJ/.+8&SW=6;F_FT9#1KQPF'+G>)% 1GB_1Y7BQL<
M-]@5W3K>;AX>Y/YS;)\.B]E% N7GCZ. S)LWL]5\"\OVP./0QH?YHF# ^WQU
M</[KYI49#_AJRS%"D@HCB'.\7.%::E""[N AHR;Z0WKH@?ATSGW%1E/M#=9
M6@-=D;-0VC,.(1X_[W?FM1YH(.X/Y/X'XJ>FEM!Y]66Y*0Y6:60]TD:FH)(
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
M#<=7RMF6=M(^39;/%W]Y=$>&D=00, *AQ$!ZI\*?99^@][WRHV(T>]?HS]M
M:I"1QCPL8'O8ACOR9*8%Y ("CBAG& 4[FZ#2:M'6F'@O9_TLP"&,KW;A28 .
M]::8IY[-"%7%R8]*825T^ /S?128ME;XM"VAUC1:G2F-<'L=G$G2 $F7*J_'
M905%89!Q:(O30Z44& %5)J$P"N,7__U8)LVTV\1G50^X:#/ST9ZB'5V/+O.E
M*BH_Y^<?\XOU+'3LPV)^OAZO/JP7XZO1,O^PF(SS?XRFZZ?RJ%IH-7/(<D8+
M/S)4W"CB[3[RR2C+$B1-"^E7_0/7%6DFUU_6B^5VS^#B;7XYFOH\7S8AS($6
M,R.0(+0XXPL+KXUSE);;U :S:CF'_1[PTA-9V@-M@$R=3<;!O5.I#X7_//]4
MIC6@B&!C%5>.8FF9L_M15#0X#+ZSLU-:3.1L#YC>"%"R])"ZRWLRZP60(C!7
M$&2%%);Y<BUO'5+QB1N=G5?2IG(C81C4V/P\^K8].>KLXLGK=:W.8^UE3 )J
M%=;!7./2,8UHL*=VV!A,X[__SL[K;I$B?4#6[V9I,>,5YS@]XR;<'>:D5JO%
MY,MZ57B./L\_YC?%&66S2Q<>6-T>W0]MX1T9M1)Z;H/B. #&$H18F0)@/1;Q
MU45:K[W5 >V&@K'+0B1/"O%I?)6?KZ?Y,U_2R5?S@$1YSI7U"GA& 6<>;.NE
M&Z8(KA8AV[%D-:MY* .1UM1X""4(K/(V4'HK$5>*]NG&JEO-H[(R#E?SJ(=
MTM4\7D_\C"(0&$(4)H@!%P9EMU.9$%#W2=HF6SB5F3=4_$P=E%]?" *GSBB%
MA,5201!F7^=1B4^1=9#VKE%J)&HI%B%.*3_(^QBG)+>O7BEGAXB?H19*+$7H
M5%&P%*BPZC6[/DGG^BT7T&W\3&7TGXF?J8=4 IO?#>-G'$4$8@(Y9UQK8SS0
MJI07V ;U__HM#A-K?+4+3P)T:"$6 CNGD: *(PD\8$A96\JL!$.)GM;4ND9K
M!T7$X?8Z.).D 9(N51+:TN@X?D9"+ FD0#MGG;9<2@-+)(H8E,0MDV;:;1(_
M4P^XU[4K!A#QRED-H"8<:D@<+HTXQ8A+L/AYBP[1/B#[L2OVU':.Q1!Y(R14
M6FENC#6[8P--6$6$=<1)1.K$TFXH&'O?%>NR/O]\O#D#0,W.MUB\F5W,%]</
M!LE67^BN;Z;SVSS_-/H:\%]^F(YZ>\^=?^>>D-L=Q<$V%&TA6'Y>Q)QM^!EZ
M5'3US@%59:.Q>B-9&'*5]PA1APSGDA #,><>82@M\KS2@-$K$L>V(P\]EFE.
M+#3!7@'<>*TH5MSLI-72]'HDR<'-R2X4^-WY)*WAE/06YN?)J@@?>#,[GWR=
MG*]'TR/>JB?OSX+\AAJ(!#9"*TB9='8'B$'AOU0W"-O1\KQ]B/HRW[[KZY^3
MU=7'?+J=2*\F-Y_GVWGNJ >B9DM96  1[9$,]@+VEC!I7(FN*:IPI.W#:JCC
M8XSI!+L?G$K2QY4VE5K:"_O[Y/)J>FOFUT7L=UC1G)?VYN$-LB./90$A $*'
MF0D($0"ADN7L;J %\6?#=N9&Z$P_\\Y@BU;ZNX#K]?I:788EI,[=='(YV2PG
MGYEUGR-!S68R%=:AP;K3%@%LH>=ALI:ER2<I0^F1HD-[M@<$>_-</MW;=Z-O
M&^%FL_ UW;^X_) O2N*''\?YD<,:&[>>.2@9,M1R*ABW BCL]K@QC/O<JAV>
M><,!.S A=YU?O!NMQE>3V>6#ZUN!SBXV%^O3L7K;60"(4&\%L8!8C 2@9*\O
MKT3\AE]GB6?#D;$S6-.G8B<<S():!+6800$@<5P(O;<P+!4@WA+O+#$N:?+5
MQ#/:8BM,QM'L]L%P_(]\N5(K5Z1]?_YK_I_YZ%EKO=K3&0=$ JNHU$QP2#D$
M4NUD<4RR>&YTEA'7M7W6"7"=D2 \G!?]><I-6*^!3%(%O =&:^T5)0 8I4N)
M-/?QL06=9:D-3858[+IB@Y^O%TW(L'\^$U $.9C44%&DBV)H8:K=R<,%BX^
MY2^4"['0=4:%R==&X\+^^<PJB*SB$G'KBKH RB%1RH,-CW?KB)=*A4CH!C9/
MS7RY^I@76]&3_RIVL.M:H@^?SPR66#. C;-6*H"A]?L1$0$5;UC($Z1-E]!U
M&-'A1Y/%ID#,NWQ4 %!LA'83RO'DF]1RF8<_9^=O)Z,OD^FF3OSN^KE:[1\Y
MFP7LUHM%L-;U:#E9#AP5L>_7H>[?ZW.XX?U\MG@@PIYI!S[#5M^3&0+"*"6E
M549P4QBUSCBL!"? :XHJG260+I[' C%:>T?&N"%.*$0VSGL0H)1^AZ,E3L67
MGVHY:F,@]LS3P#WI*) ]*/IV_^/?)_DB=/KJ]FW^-3\6%E*M@<QJ$\P3KDQ
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
M>J&U(_3B]"8BK2)7V^=GULM5?I<5R2=13*ZBS;R8?L^V=>*7M[/[PR)PSO"
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
MHCY2X2TO=3#$(=!\G/[:EOB4=X?0Q^#^J%RR8V)Z?\Q645N,$SN<N//VH2
MB+/$SF,G&4;,04UWLQ?"XOK)6IU<XK? A;PE*+IDI%NG,.:C;'S^2,#$6I3L
M)<^=8Y1HS?!NYM( 7U]OZ^1ROETF-@"B=H;L;T46]Y;"W,X6D^.IL6^?# AQ
MX8DT2& ;S5RE =[/4; &H8^M.X?:958[>-3FV<Z7/3O!L%>/!>FA,>F6WT+@
M5)RFXJ"<'9:@_K'7N@NF VXU Z/+'?);D4_75ZNOQ8^L>)A='2IX=NC1H#V
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
M;2B>L]?9;+4NLN_QG_%??RP>XN:53;<"NXP_^9$M9GGQ^V0QV0)T<!=I\,X
M$>=8"<(\T8@ZJPS2.[JI PUZ3G:6U#78!M,?S+V(EYK/O^2++H3L_3<')3QC
M3!+O*'+"<B[]'@./<'V#M+-,LDL0M5; KBUPGQ97J35E]FGQ3D"@76<_\^_9
MPRRB<X"D]RZFVGEQX%Y@&/=T#20''CJC1>FII$3K^GG-G66D#25N?6,]>F-Q
MM[HVAO#RTTZA_,]L=G,;:5</61%7V>:7-JW*R:PXF7W1[TP")](0@VB*/E>(
M44]Q>2--%6Y0$*2SS+U+-#E[84[MK7GKV*E U_(08>Y75ES-ELDM]&FQ*F:+
MY>SJD*1W_<G A?:>8>L0DE0I+1 0>]08J1^8T%D2XU#;^7BXT$QV&RS)?VR4
MI&,[<Q>?"1$/JBG7$DOIC&&"DOW*9MHWR)/I++5R4"$=#/K>KX*SXF&VNTAZ
M0_27?*?4;^A;;A+/G__>Y,O5EWSU7]GJ>Y82<E(Y@6>^K6.Q7;U\/V!"*,((
M*Z<(%8X K]$.>V8-;R#V'_'&9HP\N?CUL-6]HEFR^U%Z[M@%3[\3"<A[Q[1C
ME NE)?1>@5)6F/&F?DW/[M)G/^(*:8,YO87OSC=BD$W?)W]GG1^+ZZWT@D E
ME9!Y*9Q'SEM.%*(E]0#(,>;V#BB:G8 ZJMWWY^27SA:1H:MML\US1*Z=#P3"
M ;"0$*2D%)QA#/<7=9I2TZ!G_$>ZW1H4]/HW%%5F^WK'3GOYTDSN9W&/?RJF
M=?"JHKU/!"T!!BCE<V!M>&20UV4$@0:X0>P&_'CW8X/!WGMMA=V:.?K+@0L?
M5.+&[C2+?_MZ_2YG/E>H@M#REX+0FFD!N;'1DH\'J&0T]?E@3%IA*+55EEQ'
M]PG['*-V:*Y>'J'%[P7OD2?.&N*9E$1SK*S<X1N7E^DSP_)HJ83!Y.I@W83A
MN-!G#86SE\6G1=PNLWT?O\\[\D^D'1X9%7BTP"SB/-IA$G <X5&\! =ATF>>
M3,TDQ$%$)>\*X;X,E ,S/IFL=71<4(HI;"F&6N#X_YQ*9G>T<J#@R%NDM<+%
M:I+1"*^/+2/#R,:)S+SQB49+1N*W(I^NKU9I#TP[XT.V6!\N_'%B1/  84<P
M!AAR9C75$*%RS@3[!MZ$KBRXEGB0=X%/7\O\>[;,XK=NU6)JXW3G^7V"8F=;
MG<R)JS Z&*0$8Q":='.M/+5TOT*XCC;O^-(RVI6+[K"J?^V?S>-#-[]EBZR8
MS..$U/0NXKM<I<#^AQ-;0*7!01.MC9/8&DZXY'%;1*JD1&%>/XRD,V]W![M!
M%U!]M'L12[S!,A7\ )[2^%=D2V %E&R$[;7'8C!W O"_[DA>H@>MY 1J[#P"
MJ76$5=25Z"'NZQ>\[.ST&HMX#L* O\U]"4KGA>,,RW3EZ9FDOD0EJ@PCS%<<
M6BP'9L%@=R?KN[M)\9C@C&K'[&KU(GY)744]9+9Z'&7UZ%W&_+ZUSQ]Q-L6K
M9-,RA#;[%FG+-N7FJMRE=//!$+GNL?=::BJ4(<XI%-5WIA!&2K(Q5YFN1+I^
M?$M\T]+3S3X<2+27XKD@"8;,(@.$!FB'N%02US<S>JE'W9_ G5FCNE>NC/K2
MI5YU1VZ@LP@Y2F$TZ*REJ5'A#@#J:)]ETENM[MB77!PM^7@>N*-)@KN NGG$
M,V@!81H80JS5'FM3;B<HJECCOL&I*25]%-"K!^R_1+<]A$=YL73!$CO8;<5S
M(Z;*_<3;YX,3BD+-(M*26\*<8HR4M#'-1U3[?!PL?GN1T1C4T6QMAW#;=BC_
MM(BDKC< ?UW=9L7/V\EBE_FSSXOXGL_G/B_2H":;7JL3"=  192G"AH*HI*5
M:J:7W,"PUSX]C41\. MIS/SZ0*MG6S9JV(6SG4/<#V&4$(@)5-) RPT3<,<#
M#02LY+T9PYH97DC[7TNU6'CYR^AE28Q!5M'+*00!4DM.+H 06#'J7?RCY #V
MI'X4T/@2,#_*(FK$P<M?0]L*!X.NH9=3"%)RAREVP' &O=.<I*ZV6PY 8^M'
M3(TO4_2CK*%&'+S\-;2K4S;P,GHSB^ 8(-(Y!!#F%B*G\$;[U](0(*BJ?QJ-
M+\'UHZRDIDR\_,6T9]3)$F>C<3V<,].@('?4$B"9Y$!)3>R3@@$PK9]UU+.*
M^)%]$QTR].^T0$>^*@,!W C$I66**NJ@@4;N.&<$4;VFXXSF?.Q&]D>XAL]D
M_^4OW!$4FFU[CD%IX'V4/\$9YX0!@WAY[V*D]_6]EI?L<+GP)=RM#%S^.GYI
M;8]S'9\YQR"IX5RD>E:>XW0E:VPIA9;9!GDPE^STN?!UW*T,7/XZ?BIOOQSG
M(CYG@D$P[[D$5!$/M6&28"E*[B$//E*OH+_-"NY0 'I=OG^>!N?/L\%1-S=%
M=A,A>%F\?+OKG5JO_<\H&"<]Q)P*3U.T,<9Z;^XX)W7]QC@]'['#.IY&S[@/
MN[#VF^J8UM9^4D%1# #FRBCDJ-,6H900M^62<:#^M67/Y]_?9WG5Y=W@R8SG
MIC#N)MO%G%ZI!6JY7-]M0?]CF73_72^GV>)FKR@L7Q"PM?:SZ2AS,,\I9]J%
MAOZTJ*C0$!M @0=4<\L@A=@K:A"PS$->*:)UF-S**F':3=,H*W\C8(%5RJ)7
M"GK$3'+]DAV.!$2]>]P9D]V(S)G9D5V!_0$3(0&&V&(-N:3*( &\-V '0#23
MFE2]'S81L@,1.)KS>!Z.H_$,74#BF&"<1^," 2D=<AQY1FB);%3;^"7E/%:6
MDCXRR.H!^R_1;0_A"\AYO"B)'492]S5KGDR&DWF/!\<D'Z42T"!(M!'4"H.A
M+6DTG-3OUGM9N8^567VHJ%5#8$>SS1W";F^L/C-HO\^6__1%EIP(69$M5ZDG
M<1=&7]5O!VHMILPH+811J?N/W>M6C(HF#?%&=^/2@E4S,G9<Y!)(3I^4^6QG
M#[-IMICVN03>^W8@2B$NE"((&(P@)4CN,<>\02[[^,)_1K8$6F#'12^!?^3S
M^)KY;/4XQ")X^?5 (03:4A</74IPE N\/\\94N0C1<^,=!DT8LCHK^R.4?XS
M*^Z.]4#M[J-!:T644=0B)(&3F#'*=BAS% _?2[ERZT_LQ\"'WJ_/-I[(Y<M)
MM'4WMOYSF?VO=83*/21;K)>/;*_*#GVKAVWDY7PJW8 =&!(@@Y!&FQ-I"*3'
M5AJ"'!:8:VP(!95.KEZH/'E%]<[C@4CKA!0:>,D8]D![;';4:>Y)I29SO=PV
M-6;/Z\VF.1JCO@YZ3=_IBZ$#(X+SPGEK).."&!4!B0B5H&@.ZI]A75\1->+P
M"7&I!TYO:M3;V9[V@!\:$PS04'#%&4"$$N (X[!<8IQ8-.X;F,:<.RT)C7#Z
MF#(QRJN-\8C"*$3@Y"W%N\\'(*P0'&!HN&,B]<1Y.G$Q;&#*=^?4;<ZGXYRO
MA4Q?7"_]7\MH,J4S<-L>X5M6;(RI(^P_/C!J7H9:Z:SPR%JC633Z2FJM)F",
M)0S;5B);16@H>4@Y$C:[FL<93^WD\?>HM*8>:/^538[M#6>\)2C#!3+, V^)
MY!Q )4B) X&\?EQ_=S[PKB6E/;B&%)MM$YBBH=@<>$MPTB>WC84 1A@(@!'V
M$@?F_!C30?H0FW;@ZM+'M8\"G]TL9M>SJ\EBI:ZNTM8X6]Q\R^>SJUEGWJXJ
MGU;3Z>:MD_FGQ75>W&W[" X;WOVMR*-MNWI,<1"KR-*4,K!I0%G%>75Z<,#<
M(6>=(EPQ#*&*JJU*TB& 850Z-8;P[(-D5(^^/OZ*@"B05!.&L%">:$:A0CL4
M,."T3]WUJ+NK388>#)YN%:M1.\,.4JH?*SC&*HP." HFG?/ 6"DB9BHRI 3+
M4S->)UGKTI!W#5Y?"L]A0*JX3BJ,#D8ZJI*W01((G(?8BQ)3(A2"XW:LM<K9
MJE+3&+V_C_2,T@4W=J$91ECT>C:?1@7UI$?NY8,!8JH]I\XQ[B3T-FKYOJ1&
M*2?&YX)IE4=YB^#TS>I/=_=%_K"-CZ[,]K># E(,::( Y5YS#SFR#I14&N\K
MZ?7]^E;Z$('&0)T6AP-]BE-8QWJ5%?\Q*:9_38H4VOXCOUZEOQYD<[6!P7%O
MF'& *:\4CX8]-[2D "%:_ZZ^,W](%ZSN!*S><D5* $YGB+Q\,GAK#/48&TZ-
MU!@*P,2.'@H@KK_5=Q9)UN4Z;X9.7]SVZV*QJ4T4J?>S7YLJ12<9?WA00)K&
M_4M1Z"-=&B & "FIE-$^JRT#]!)EH#6@:HK#LE@]$X7XK]=B$'\4-I5'#O@7
M7OP^6,H4 -!#2HSS(AY09#]G2F"?B0+C\" T@:=SEAY<QJ^>" Y2!P&A" CA
M) -1VGDY;P$U&Z>-7Q/[UYQKA,'E\'!4EG:_K.N/9;]'^.[6=T>9]N*9P*$C
M@@&DXI&BG?#4X/W</6'U3:/6K>/:J.?MT-XIWR:_3O/M^3.!"<D0]$H8#P6V
M"CI:SIU9W: Y>^LF;2M\:T#[X,[,/Y;9]7K^>79][':NPN@@#0/4*4HPXD8)
M*YG=WV;I:+F-9ZWV<$77/F"#W_:KZ4.D:+:,/S+Y\E2&2!]! ,F%4&2WZ31]
MR#XMXNCL<[X</'4E3G1]MYY/5MET4R3PP#0_5X@*./=5(6XU#G-D%0&*$Y.J
M#+JM3"G!D*\4U#LH*J?B!,YY3: $N93!AB15C&! N2C1H,"K/K6^H[$"W;'Y
M=<6K[M ;=?3 CU4D.7UM6\8SD9TODF?Y5$+-L7%! FFEQ]*YB(]A7$NR<U J
MCGB#)I(=1PQT(P6O@U1:A*Y/W^ZSJ9Z\XWWW^13\*:-=9EU4))W&B&DI2]J$
M(GZ<_H*6^?:.M[<MI#Z6-(S*\S!&(1B&^17VR)/W )7?$9B%DGMO.>08<J^@
M!_OS7&#7JY!4LYT:\O)\O:064B.2EG2B^KS(HD%CUD61+:X>?Q:3Q7*^+9$P
M_>_U<I56W)=L]?7ZY^17<QWXG*\%1BDS5"G)!-"84JBI*7$UTHPP)6QL2G.'
M<(],C-5#M*^3<AA)_C&99S^RJW41^9Y\!.V+\3E?"PZFQ@!.QHT!&@.PBGPN
M<764UP^PZ"R69FQBW"'<O8GQ?J*1AL_YXB95D-F4T8M$WD\6V[4YN=I4F:DB
MJ'7>%Q2F6"!',&<X&D^I;1'<82.]&V.L3W^BV .@?0G;,:2^I_3 Y7+CP'QY
M$/@(OOIJ/NT6V=?KIV5602 [^V9PC#GK"*/Q7"(8.^" *C'F1-6_<.LL1JDW
MH1T+Z(-?!,2%.EG<S%*R]'*9#5\JRB<JL\^1(=/74ZOB8Z\R/)H=$ED4]YQH
M[;+(%,&UW;)(2RI<)5=?U[EW1PBIGGUWZB4!2X"]LD8!*4BJP(G0[GI3<^G,
M:'SJ[;+U8 9>RWB-VHM^A%;]^/ODO_/"I%WPA$_]C+<$QR6V4BO(C;2, T0I
M+L&S6([6P]Z%?+R.G>P,QMYB:P]3\#3_2JT?SGQ3(!(BP;SS&# -+=((@!(/
M#H0>MX>^$\Y7EZX6$?V7I(W2^W^) C:,8-G9<E7,_EPGYGQ/30I/)P<<&A)8
M)$\F:X18RZ601LA2%Q%*J%Z30:N97IWQ\$T)E58@:Y00-L\VE8BO;A?Y/+])
MWK#%UMY\0_G)%+$S7Q4\-4Y308F@3")"N?:LI%)Z4E\P.O-I=BT8/4%97V"B
M\9_?)6_!8E5,KE9I6M^S[67 \G9V?TI(J@T/+GY8&.6Q)YQ2KQ@6>VH8Y+BV
M8'3F8>Q',#J!KZ\CY4N>O$KW4;#539%5S"X^/"@PZ;'2GE!GHU$+C0, [_?(
MB.'X/'I]'2NM@3:.[#,E#?$LFI& $8(U$;R\B]'2*EL_AJ"W[+/6;>4F (TG
M=XE!0!PU4L4I>ZT%=%"5\R9>C[1X<TWL#R0QU</@<G@X*CNP7];UQ[+S\\^<
M4X)C3K WAFAH.#:DG'O\L]?VG^?E,55&_6#^V7FTCRO_S"K "?56 R<I(8!!
M O;42U)?,^X\_ZP6WQK0/KP+KE("6I7A04&CDQ((((NBRR6"9E="0BNL;'VN
M#^%!:7Y)U0%F@]\]CZ#T;+6GOF</V6*=I3J_-]M9#'U-;F?+R4TT=&XVAG J
M0;R9X><*5^2GA@:*&;(*<V0(I!@Z$L\,AZ6%5A"DJQ62[Y7J4Q?BQX8%#J&E
M!G&+M?;< &6AWU&+H]'8IS)W] J\/;:]=<BVA4Z?%]XM&]Q,:VV5T)80#31V
MS""2"(UGKE3(UB]NWO'E=#O<>]?$/@^2\9AG4*LX5> AYBZEM&"%S';>, 4<
MCC1EJR;V!^RT>AA<#@]';&)WS;HQF]B$2\$=I1S*J-8F8X?"-'=/*1#4]=F^
M\$Q3K3+J!TWL\V@?EXGMJ;0"8<\TMQQ8P:",9J9TT!)M%*E?R:YS$[L6WQK0
M7OL:<7<P[_KDIACY]Y220X\&:[GAS$B0&B0*(A7!T;231A",&"(C<EYUIK"V
MA,W@9N]_3E(+Y=7CT#;DMR*?KJ]6GV>3/S=]R-,5:YQFRG>K8D=6&1XW10A3
M4S>DJ%8$0(!0V>C9:ZK-<+;DD>F?LB=/#0TR^7(8,U8R9;&A%*F2ZKBMR#X7
MZZFV)BVR\&W5I#91NF#;$C*-C(S_\X9JX1'@U):$,D'Z[,QWEFW9'@??M2_/
M@V4\MHFFD31&+1!0>6 \U8B4\P8$NDNP+RMC?\!(J8?!Y?!PQ/9EUZP;LWT)
MK$1QPT$42FAH:AUN=7D6D6B C4<+KHWZ0?OR/-K'95\Z#HGPBBC&%8OJO<;$
ME'-7N$%QK<[MRUI\:T![;?MR=UB7QL6WK)CETT,6YKL/!P(8THC#*%K1B';<
M1X.JG*FUKI*RWGO1S_85V-80ZM#2_#GYU=&]Z>;-1SIR#F>OQIF9(HL3,Y$I
MCW%:?TV*:15+]?C ((C7.O6I() 3PJQ&;!,3Q2UASK%*ATJ/%)^R3@\/"L0+
M8Y'2F&I(>#Q*T+8 ;J04>D?[S$HY:I>VQ;"\(V1&G=C[5*X@53'ZDOWUS -5
MY(OXUZMM>/2)U-ZSWA, 5H(!920A0$0P!8.T!% +,MK[TS9DXF!!E/:!ZRO"
M*_6#^7JMIOE]8L?)E(7W'@\46F@\TM!3C@VSWC%04A:/3#Q..[EC+K[>DMH#
M[B.)QJC,[PN0B&$DX8G^'ZO)8AHWSN4?]]/)*HO/,\BJE-0\/3Y@:*4GRJ%D
M@ &+>+2#=[0C)L (K9)F+'Q;Z:UUD&H;F4<G V2J-+N.Z#_&4_4_9ZO;VWS3
M_7%?6/1XIF0K+P].08<LC' CC#0S0B"V1P*@$18-;$5<!D.P2T?3OG+Q;UE^
M4TSN;V=7D_F1*Y>#SP=-5)3DJ+19CC1EFJ!M9'2B*9H2?4K%4.IIFP!URO2M
MK?1\A@<K>1Q]/GBC93QV!4S=#"E'C/J2IM2+V(Q3 6V)3WEW"'T,[H]*QQP3
MTUO2%3:E&W[>3A;QSS_^[<?QL__=AX.4@*=L;2V@5= ZZ!4N9RI4@R:[G5SW
MM(!XWC(D?5D"V^*9>P'6D_DD&D,_;K,L]<MZ\B;;V3+YRU)K6/T8_W&?+R?S
MWXI\?;^,KYBODSJ2GMFX\=?9]&L\*K>E'DXXJ_J90-#&"DN]E$HAB@%1:*]F
M$P)A?8$\OTC'T%ZN42+>E[R?14>E6F0UWQBH2/D=2*5+864\IU'/+_$!1H\T
M&&6L0O0V-:I'IOQ+>%_C-"H5[6\NLRUIA3]FR^EQ5?#IB4"A!\P;0B,.<2Z&
M VMW<Z(,XA&%^_2&?MX&4H/L-.9E4?7C^MR)D0$;;*UG'*JH$"M)&:>EUD(E
M!GV6MA]:$6L7JA&(QGG'S7MC Z!6QU40,?0:0@VX4.7F285R(ZVRU#I'JTM*
M(]S^'C(S2F5DO*(RF(B\<]!NJ8D_N=:/J7%'E;J^E5\3]+9"(74ZM;!3BAE2
MNF2HH[+/)@IUM)1FW'TK-UT!UUM\PWM'] EUY>"8X)'&W"F:(M8PHU X42IV
MC'E5/]*!7IRBTA9(@PI")7OXQ,@0EQ9-N<6,$ZT9!Y'L,C:$4>]&6J&B13Y6
MD8S&>'U\.1FE2C(^\1A&++YGRRQ^Z_:DLO'RP2!]BN5ABCI  (2"4EV&7S#.
M>@W2KAK TA9_\A:!J>^A2IZ]\M-J,76_XK&9I'\U.1KP6'UP()A"ZB&%0&""
M4HU'9TI*$!7UKY&ZBU%JF<6=@=7OC>>F57 $:YMWM)XM;IZ47IU%F'9M!3=)
M-1&J;+F:79V\QJSUUL"M]U P&B<<V1!U:LO*2V9NP!C-D([2//H#<<3"MFM@
MW:ZL[5X:+/!6&2J,9I1;S0&4I07 );'UZUOTNW\-(FKU,*Q]FB7"UYNN&?]/
M_N=27:V^7L>'^&9"FXXK3S&CYC;EO7Y:Q"'?X\9LL^NLB)C%?V[JS'XK\H?9
M<I<4N",G[=B+Y7O9:/U]/"!AA34,86<]4EQJJDM?!6>Z@31VUCFE96D<+=9]
M2.VFN_2&<W%07%S/6@COEIJ;%(OXX+); 6YE'H$K2*#FGOJHTG(N;&1\B2_U
MJ'ZB?&<-7@:6Y2%@;UNLJ].P3W0_4V!K?"&PY.*S#%-!G0%<<B;WJI!WL/ZV
M>K[G<GRBV#V@_>J6Z2C(KO+%59SJ1G$ISPBWF%RM-F=#.BI.JI,5WQ-(:L'$
M4K2"Q\Q*B"DOM1^A=(.>#NQ"A*L/V/H2(7=]G5VM9@]/:N[WC6'_G""U\EED
MT&2^3T)Z\? 1P6KA[4%+J*A2D!(,'4*"JGT _::31FUQXQ<F;OV#V9<0FLGR
M]H@4I5\'[(G!FD*,,+&"8@71?N84^/I'FK@P,:B!QI@VD]T1^^().XL#BRPJ
MA9-YP]WDU.N#Q%1299&UPGFC 9+ E<@Q+^H7NY 7)D<#H#DF.?QQ.RDR/5EF
MTY1#&RV)S4_=KZMLN8P#=+:(3%ZINV2K-)3)<SX5S1G''48< <& TXAH2TI$
M"14-0IG !Q30#J'M+>SIE0LGS;O\V<[&3?<LQ<.FJ7(T5HKU9+[<9)@=BX*J
M_];@+;')BB9  6.]9(:6%K5PD-4/T(67=AW1'XJ#2=OF(N]%2;HJTO0T*H!H
MS3"J:5Q 3&B( .4EG1)2V"!7]])N%-I#Z?(.RF]9<97U=%+NOA6 -<XBH@@S
MQ.FXI7->)DY(JDV#NF67<GLP%FS[DM<OV2J9/QMW\#2;ZL<_EJFGXN[*;G&C
M$@B1FT<WL^HO"58J XG'R"OL/9*$NE)CD$2Q!K6N+L6GWSEH XN.GRTF<8TT
M$YUW7A(0A=I8E8KJ<^3CYF_VD;92PB:]"2_%!]\Y:'V)SA^+8ML]]']OSO;=
M3KG<[[7?LL5DGN8?=<!/BU4TCI>KPY>3+;PU4",4HDS:U"*0 "Z)WR\QUJ@&
MWZ7YX/M#<0 -O;Q_BM/_K<B7RR_Q.%\7Q7$]J]+X@&5<4 PA"J"6@C/I_%X?
M!<XWT)TNS:W>!5Y]R<K^@M+GQ1^+JZQ812"3U.?;"\YJ$G/&6P+&F $.&0$X
M(D&0I9Z7.%@D&J1U7YH?OCO4:L<H/-\,5Y-??^XVP]O\K\5D&;7_5!4_SFR5
M+_93F^ZD/SX^V=BLAZ(3VGAWH$YKJ#CU2@A%!<5Z'X*D,%,-I.=2O.]#83EF
M76GC-\O>:WC1PEN#L09&<T3Y:+@B"RVCWNQQ\J9^3@:Z-(=Z?RC6WL%V;7-L
M=E5DDV7V:?$ZW,NNLY_Y]VR^_6WI?#VT:=5\78C6AV3 , T-%$XKS$5YO:H,
M;Y+D<2D>\![AJR\LVUX]K0E+O=<%%.T'1K1QRBHOM0!15]Q3&ZW8^L)R*0[P
M'N$;@15FFIA@IM0(A: (4DFB.FB$ ]PZN*/:4R_J]Y5$E^:[;AVL@44DSZ=_
MS>;S[1DZ6=S,_IQGV^N@U_\^7X*JOSM$N)3Q%,MX<ENG2#1 =I$9%##;(&P.
M79KKNF\L![O*_<=DOMY& <[G^5^ILMTY5[IO1P<!K0.26.J$T%PZ!84JZ:8>
MUL]A1Y?FPVX?K2'#2]XBM"Q3><\,*3GRIH"ET(@P[ F'3C/,,:8E'M8U:'N/
M+LU)W2URO4G2>_6!DGJWN7S^>OWN[X_)4YWW!<BYQ-HZPSAPV@ (%"BQ0=HU
M,,TNSG'= WZ]9[)DRV^3V?1+=DR]?OMPL-P:B13G CNJA%$0\)(J9TT#;>?2
MW-*-P:EMCD<92^+W7W$/VP0^J?7J-B\.7:F?&A(\)(A8IP7!@%.%D48[CQ.%
M1.L&++TH7W%[$#5B[&KRZS%.X8^(9C;=3&2Y<1$N)O/OV4,6]Y@?T9R?O:MR
MGO^2P)V6&EH)+4 IM0$P4NY2$&!5G_GX4IRVG8/6AC@\3(I9OE[&?\T6-Y-J
MZ_W$T* YQ,Y#YBA00EL;SR=;4B$,:M"GX:)\K^U#U23U.6T_2Y,_9$F+O2WR
M]<VMFCXDLV?ZK9AMHGANBBR[>]\O5N,MP7#@+=4:)$>RH=&V$D][&_?UNW[A
MB_*J=HI:$XE(@KF,-*IO:E*!]>\]'J!R@B@#HN4,/)506('*V;JXE=7G\:4X
M05N$IS8S-V=*L;,])XMI]K*45]QVKIY;J8>8?.9K G8LJJ6,6@ZLDA$M[7Q)
M';)6UV?^I3@H>X"MMPS>;06%V4.VLSX7W[,4#Y--RUH*T1#Y>AT!A._(3XVW
M! Z$<LK;:,[R#1!LCP.B$C10$R[--]D=:D_2\W_]^RO XK3_N?G%.S_?O>,%
M=BGN(/OU;]$V_?<-9!L#=5LI8;F_#/1Y\<Q\=;]V'3CVL0B+Z3Y$P282Y\N7
M\\U^K;*X@J;EI!O-+5\L5[/5.C6%_GK]QH-W_/L#%:[=R]*1-79""#%5$D9%
M@3&-%5/<,KL50N,Q@J+2KMPCQ9NJUN=2NRV%#1!BT'(K%:8.> &)WSI9C;,.
MR081L&?O'Y/YO/:N49EA50KSUD%FLTDDTJ:K_S,U3<JF__-_K(IU]O3#>(K%
ME>'F&ZWF?_Z/Y;;78B]"\_::1C^^7LLGZL-7?45P&D,?C3#NI(T:FP"(^ATG
M$/<-;ES/%ZBVRL57EH2\%\R&NC,[W:'DW0%!B-1V.YIB%@ '(=1&PI(ZB3T<
M=ZWX]IEXXEJL$6H?33:&D8D3]>''*A+#B,);--Y1%$^6D#_C+0'">,1+P+10
M4)!T.XQEB0/4KM>^V!7;U31DZ,F#I2VP/D[4CD/,, HMMMYCB[0 S)0:(=.J
M?MS%4/[SNBIN^V!U;A"_,#KW54]?VL6=F[XOZP9\O7Y^]?2ZO)S)B_N\V):Y
M2#4'?N:INL!D\;C<UR38_>;K$PU[PCHG9:/&=O/^_\QF-[<1%_40 ;G)-N45
M>OS24[/:3XNX8NZV'< V>/8W"3.97VU\3TE,WGVB[QF=9/ANX:;__#E99O_W
M__'_ U!+ P04    "  N@4Y.&<(,J5M, 0 2L!$ %0   &-G;G@M,C Q.#$R
M,S%?;&%B+GAM;.2]:W/;2)8F_'U_1;Z]';'5$7(5D+CFQ,QLY W5WG'9'MO5
MM1,5;S!@$I(P10%J@K2M_O6;N)&41%*9B4P GNE+E2S)/,]Y3N9S3M[_^7]_
MNUN#+]FFRLOB7_[D_NC\"63%LESEQ<V__.G7CZ_P1_KZ]9_^][_^CW_^_UZ]
M^K_DPQO RN7N+BNV@&ZR=)NMP-=\>PM^6V75'^!Z4]Z!W\K-'_F7]-6K]B^!
MYHMU7OSQ3_4_/J=5!KY5^3]5R]OL+GU3+M-M8_MVN[W_IY]^^OKUZX_?/F_6
M/Y:;FY^@XW@_[?_6V=^H__2J_[57];=>N?"5Y_[XK5K]"0@/BZJQ+6&D__5O
MSW[_J]?\MHL0^JGYZ?Y7J_S4+XJ/=7_ZO[^\^=CX^2HOJFU:++,__>O_ *"E
M8U.NLP_9-:C__>N'UV?1H9_JW_BIR&YJOM]GF[Q<?=RFF^V;]'.V%C":3[O=
M9->G/V*]V3SZA)HA5#/DAC5#__.%#]X^W&?_\J<JO[M?"WI^&H!? _#V.5A;
MZ!H2WNJ O,3JTP\TC/>3Z+J96<3//](PYK:A\6)EH_T^_5C#V,U"MMHRRFVZ
M-MPRGGWD6<SK^K?>B*^Z7ZP__8+\-L8[43WZX.S;-BM6V:H1S4<?#?+5O_Q)
M?+785:]NTO1^\2'[DA6[+!$9B);%=I,NM[^)Q$1WU;:\RS;X<]5\;T$1]!T/
M)CZ/8LH2[%,'H]"/*'0=UR=PT7S\(BM>_?JQ!]-\RXZY/ZGP\YSY35:5N\VR
M35L"9YVU6^C_VB%L<W*/L4W6/4KP>X_S___GGPZ>/B*[7)YJ/0VZZ[3ZW$#L
M2!%0W?BG;+VM^N^\JK_SRG&[7/P_%=E[RG^YM,9_2^>ZKD;*3=>2'S4XO%F"
M<K/*-J)*ZO]2NEF^$+?N-WY:EB+UWV]?/0IA'1G+7I5V6VW+FG#R%&//NFA=
M":UVZ^S=]=OL*UXNRUVQ%77F^TU9B"^765U55KA8T5O1CK/J=7'\.WFQS(7(
M5)^$)A#!V1\+!Q(>,YAXF$*41)!%G/4@G<0EB^T^D;W8G4>&IM+KMV?2\86N
M__KNON[K90&2=)F!)"]$Y9FGZ^IL+Y]%O.24=\:A4A/HWA%07@/A"CC@!(^=
M 6FQ IT[("\>_V+O$?C]4_I9?%CM&6A<&UG3S<;E@O1/U #FD2&F<KZ<12=4
MRS<LK]*;FTU=N^9E\>ZZRWY-/SG89@Y/@B@DD1\EC!#'I239YSK*E-*(&8N6
ML\-CD+7Z=##5LH,A=N5$?WQBU;3\+*>3R[(4<Q?4UBSS\Q!1PSZ5-MNJFN2=
MK.JK*ML*+7Z3IY_S=;Y]>(*$NI&H]47!CUV'T3!T/48%$N0X*"04ABH":,.^
M93D\/32^ GNX:K)H)0)R(CDU^6J2>8[W!G%3\NXQ3RZB&LQ>D%2;<9J'P%KU
ML!ROU:N)[^MB*8Q_W*;;IO[=SZ9@' <."MS(\U$21RQV/,:]P/7"!(E_N)+=
M6_?C[77A%A'80YIL/O$,-1?ZX% RY]'/!GM1FFUB:OWEA=E(_FVYWM4+T75O
M%O];?4J_+4(WCH.$48XP%(-%QW%(T"/Q:<A4BA4;]BT7*UHC-2L\&UDFL4ZQ
M\263*[#'#'K00*">U?K)*5KUUU(&!6D>.FG50[4U%@-LR@\&J^V[ZY_+<E5/
MQ7W,-E_R959]+->K!2+888D/>8AB&E!7%$)19Q#',(9J8SYM,]:'=M6VGHO9
MZ*CF$/9DQVNC$*<Z+&LY:V UP[ >&*B1C3WN.L?0Q>'58%KGH5HF''DV6#+$
MC:P&_;PIJ^K]IKS.MXLP\)&/&8M<R!"*/ ^'7F\A\;F[V.[WE[S8=U0^5TEE
MSFQQN=!C&BC@+MW<Y(6:Q"B1(Z<IMGA1$Y&6DA;&N(IQY/\%B=!A:1Z:H(6\
M'-Y&5$=V529^]U9H#!.Y=UW>U\-)_NT^*ZIL$=,$$D9C[GO<H4R,)9.]TGB1
MQ]7&<$,L61^MM>"NP.J [:I)JEDAU"++-O4X(FO1*N[.&,BQ[/AM+'I51VHM
MKH;+(V2@@S;V<.P"2Q<'7B;8G8<P&?+EV6#*'$/2V]2RM?CIS<]9D6W2M;",
M5W=YD==38=O\2]8;9TQ42#!A+DM"BMW8"UC<&Z>>ZRMM/S-CTK*<=2BOP$V+
MLU6R]!%433$SQ;F<JDU MYJ\[9GN(#9$/P8YC=+),7=I\Y99ZN>A?::=>KK9
MR@9GLFKX[CZKS10W[=K &U$Z+EP?14X<.Y0X'#,8$>H'>]V-$Z8RD-/Y?,L#
MNCTDD#>8U*1,BS YW;+-E9I('6CJU@%_J ']95Q!.D')!?490N \I&:0!Z6Y
MYJ0F(DFYR?*;@NXVFZQ8/GS:I$65+NOM43^G>5$;)MFU^)UZ+CQ ":RW?WJ0
M!#R@U$W<?JT11\136N$S:==R<=5!!<L.*[@1",$/ZXM=RC[9<L(T%<]J@M53
MW,,$1SC!SPW=C8)=@<\-VO'7]11XO*!R-J(Q#_6SXEEIORVK[B/ZDE7;>J#;
M"O/;LBA[J5Y$7A#'+':0@^/8#UPF1+HS21"-'15Y'&3(LAX>L&E58<,XE%.]
MT>A3D[DCYEI<5^ 8V=@[L\YS='%[E@%JYZ%99EQYME'+&#_2 \'M;;8YMM-:
M[D>?H4?C -&0!Z&+A#44(](;%>+HJNC20%.6E:E!UXD2^*&;[U*LT8:2*3E>
M'(]'Q:%C0^$QLOT8DK_$IYUAY$6F+HTHS5 \#ZDRY<S3<:9)CM0V8]?E6K\3
M*R]VPG8WZ"V+KHQK?T\4<UGU2UZ4FWS[\+H0JB#D%1>KQY_"_[X3/_XEV]Z6
MJX,"5POJ42\,(QX&,45Q@&&0^+T'G(=093YL3K@MS[-U7;[9;;G<.PK*O:?]
M.*S3VFWZK5]>4"T&Y\.ITF;_>4"V6:H>31P>MMUV#>'=LX;0>@!:%\"1#U=]
M_FB8: K>ND4)2.LVN;243'$J89087BREY]>2YI'N9LG,R1,9,\.HD8@%LB[?
MDZS(ZIU'48"QYQ*&?>*3('9<Y._3OI^@6&TB0\^&]3F,IWFKOI/E9*K326@:
MG*HD'[MT:B4* :E?]P8_=*A&'BF<X>9% =9G<TYB.<"+D\(VE!5SHX$%H3!)
MN.OY* @AB5TO"O>S)H2XU&P1_Z(YR[7WVZR?5[U0?YNNLE_FV%1Q;)1>.S6M
M*%*SYJ2%Z -7 &^WF_SS;MN<<]^6X'VZ$3EY;O7JH#)3.B9S$CPS#BD7=8I<
MZ<D@RZNNVV>K@VG1*M]=BS9YW"(_E1^R^W)3S]UP\1>V#PN:.#"($8ICAD,G
MB812][4BQ0GQU*NW,5!9KO>.1+5=N&^[_^K(H^/9C1_>EML,0$=Q[GC$(.K(
M\5SB-UBUCQWYCG1[ /_2\CY&C.>8!4;Q^V*R&(]YV9PB;!_M'T,(,<:"$'O<
M91%R,4[Z_6.4,!*J5-%JGSQ:P:RFUHKTR"FN/6;45+,FY;%RSD$/'[%S0=/T
M6)R'+FEB+TVT(S5]X.FF$!I4O<\V'V]%:R!IE2\/-\O4ER\Y(8]#'H6QRQW?
MZ8?[U(-4:3O3,$N6:\,&#,@ZB$!(-_B:Y3>W]6W[Z1<AY#>9&(3?W95%<]BC
M_?)5]O==_B5=UWMYJMHE\(/[EW]2$Z"!_,L)TGC4JPE4CPL(8*!!=@7:2$QU
M5=5%IBZ(E1F&YR%>AGPI;;1!T_.* DT#I(&T2-S BV#HQ@Z//=<-@X3AO<1R
MA/6'S<-MCS<XOK#B_T->@%6Y7J>;5B,;U1LT0#80%%.SDO;B86N*LI;-5B\;
MS'.;CWQ$Z*#)2;W0S$-.K7FG/&TYA$4;<YB/\1 :>1@2Z"8^3:A+W2B$/1[D
M1(FM.4LU%#.;HS2NQT8C9GZ"TEZP;$U(MG=@Y-5]6:7K>F)2:N)R1LJN$!!#
M,Y1Z09ZCVEOQ<\ ,Y!!F!\TH+'!$'9=SC_MN0(,P(2[L;S)B+J>^RLRCGH7Q
MENQ-J+(FBP/F XP2:&@>8 :#?]5!OS2-\]"K@3[(#/(5&='5&9:O=]ML=9A2
M( GQ442IL.GX"1<ZUZ_1,_$#I2-/0VU9KAH[.'.8OU2.@IYBV0S <.WJXS&7
M6<PG;"E(FB[/\Q0W;6]>D+EA+!F=S>R@M 4>=X,P@I0$V.?UY4-QZ/5+1BP,
M/6I\/E/)^G^O&4VUP!B<T[06$YNSFKV"3C[ZE2!UZ,RF5H#F(; 6_=.9W1S
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
M;K3V-]]OLOLT7W5UG/C]YAG:]F<+G& /B^$1B1AED9<P!$GO2\)#I=T&\_3
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
M\.I)*76R#__>HM951S.Q4!3)T<-@4BM?XMNN6LI0)R.:1D,P,^TTZ]LY";7
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
M/RS"& ;,Y=!-B.-!%OLNIMU'0T@=J*0?,A]H62_X;E,JCC+4^)!4!=-4J*E
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
MD"W+FR)OYO$@C!,<(Q;2B'LNCF& @WU&#'TN/<$\'B3+2>:7?%V?$RHRL#F
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
MHTXCG]K,PJ"8X$B19T1QSI%S0724^;1#=]3=:#2/,^4UIVOZ ?W,, 4)27T
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
MBP745)[I'?KEAGGD'+MTY0Q.]7\YNK7,@J_NL"BF'B,CX.=)0V;<ETA)!N/
MFYY.N[^9W>E[8^<0.QJC?2[9EB18K]M=L>GZ8VY7) ]SUD44NL!%.<EB%$T=
M12GV8B"2B4SB,+[3=_I22'?5?[W_P>C E3.YT)\7,SEQY?1NB"4@HW'CRS6V
MA$PLK9B.EI'\H4#UA50Q1P#MR JS>-K,_W@H:GU_\M$U>W-ZY09Q'D<PHHDD
M3J'GNU$R6<R\R!.Z;D[%SA):/9SE=2U^>H02H9(B:XA+#2+*0^,\ZGC@2$3]
M))BU5-UD//E(O:39F7^A9%Q17+DYPKD?@C!&(8:T:$Z2?,(9010MLU+"B\ZT
M$E;=NF4OV[#UD9L!FM.60]OJMG'*QZ=-\U*63K=MUO]RQC63\@=%7W6B0KE
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
M&N-6 8YSE,51GK@YR)(PA)A,$/P\A]Q:K-NP88T>]@@GO'UG\0GBH9GP&+.
M$&D/ X>H+QD!,;'_V<@7R Y+!D$N:V@-!E\Z$23I7)HQQ;4%Z<>8:\T,8U6L
M#Q/M'G>;@MT+-UP0]Z7^5K)S.<M;7+0UG:-TOY?;+W<TAWJKQ$T!!B1/DBSI
M(<1[!'Z4N5P['2;L&DY6!ZA.V6-U&O;ZZ8#6*4>X5\/9>'?L<15K[-0:@LN9
M:FGVQ1+5$?%X3_P$U,%[XG\?B+^^0+R1-E$!%B_TCYJ(A1V-I48\:\R/9#$%
M_;Y^*&]WF_++W>\-$^YB QZ;7;WMOMQ]V6V[+95V"B.GVO[<X]P?=WQ=W&S*
MZ_+'%E+2_K7"(4Q!$  W",(@(RB-$DA A'PO 1&$7'.!N3&9GB:,;K"G>W+$
M&3UAWSORQ3DXX^R]$=/AV0+)I]$VQE!PHJ$8/N?/WA6'^>+TSOR_\PJ\IA!<
M$/^Y@VQ'8IC=ZV;91TLVH1P0?*J[;=M/+[M/=3]S8%]_N1MORBLV$T125.T_
MB\WN""6!),X3Z,:!!P(?^%F(XA$ES()4,K',@VW&!'.D0$<>L:-F]CZQ7]M[
MM=>I*X<YYO2>R6:<F2(MFGGL"[)\!M(27XM2DI;8<*6F>4>!;2EJ9N_/IJHE
MHL";LK[<W77EMK_M>GRE^%6>#'.(8NP!$M/YEHN"%"$P&?6(V+53BJ9,-\CN
MT8WOXXLE!%4>^?1]1@K%Y/H->XO+[66J+JBG)H[M$$-=SC1&QJ'6ZOK7HJH_
M-]TY82W;NZ9]9#T\1Y(:!WZ*B1_F/LE@%'IIL)=4/T=$8WUM )UA07R_ZKIR
MF"?.WY@O?]=:,YN(GY:J>>'0B0DQ1]06EV;M?,O7P@9C:T<"6-!_L7K8>"0T
MI9EIL^++]J%L4?/XU)8/9=WUO\2.T& ^G*3# --TB'P_]S#&/O$3'/@3SBB)
MA8KH^=$MOI!S=;2'V/OEO')L.A[:0$HR$6LM*6GA,.M>RA&*L.WI2SPV\NG+
MX#CX*=*72?_%TI?Q2'#?>O?]FIVWO6M?8+79?"_7N^%UNM_*QYNR787T_T"
M0A2[ 8#$"Q.?X# -@9>[(4K<U7/9WC3<5]NI&1/1G&-<_)W=(SJ'P>N</P=<
MY_7""*-\BC\CE6+R_<=WYQ6-S@';QX2:N5_N(E47U%03QW9(HRYG3B^"T\D1
MKVC]UM3ERV]%^Z]R2W;U;0>&$RVK^KY?!%]E@9>X/E5'-TE!%M#:/O!'JT$:
MI$+7<:K:,EP/]_"<QQZ?4QT2C)AF*1/*)UIS<BFF6@.- S2GQW;E%..YNFR5
M^O*>KQ'9^H"L"[JEBV8[A$N;-XV9P2C8AEUT#Z"^9?^#_V='"\,->UI/;4=9
M'I  80\$.8E2$*0XG6QC-\U7VV9;;/@$3(]%(1G;@^/O *;H^G<BUNR+\H!3
ML,-:#[M\:C8_L6*:MN>T_^((XN+2QL7<I4YJK<S;(7.:?3KMGC; &*_D@>>B
MVK"Y+&G:[]3PH4C,RYOMX5_3U3$)"=P,$UHQ)J$?D23Q(CBAR",D=-N";MNF
M5S<?FG;["_W#1UK+/9?=5J*6TTXWGQHNR;3HGM?-]FA6>N7LH?]RU[2_=!3\
ME3/"G%<7!3F\H)"FHF&'5AKSKIEG3)O1S]\I>2,0D$0 8B]-DBPB,4R1FP0C
MD)! L0FP ?.&5?1S4]_/)*(BG.O544-T&Y#2 U([U?2 3X.@2H3EY])4&0<E
M956:2UYE94)Q377BTT$F5G&:!AX,<HP"CQ",<E8%3Y8\C^NN:Y7/MU\;I5CC
M$S_3A(FIVX&K3QQ<&=&P=PBY(%(J]-FA0DH>-/H&D\!10&Q.?3*O[J=QS#2=
M<K^'(HV"&*6QZWD91'Y,LCS>H_!#!'F6]TS9-KS0=\W^1."0&1/L7M8B&XB5
M6.@[7>1S>KP.0^E0Q Z#//R+1\SF"83 @3\+!T3NS!\&^.K-DO:5T_6AZ3,+
M6Y_=L-"<YF35LT'%"7LGL9BFWH(C@$QZU\PS@$4OO^VJ^YI=_ ZZ_UW>WE?U
M_:$Q:=JV]X/$IV80B/,LR@)$[>(PC&,0 R]QD=B%M^KV#!?%!XA.T3DCR*..
M0\E.("U,\Q7.<Y,LNDR@RJ^A"VL_).U"L:V3<CN*;ZT>O;F,5C=;W,U"Q8_J
M<??XK7PL*G9.T&_%EJTOO'RY(TU;4E##ZNWZY="HV7DKUTT1)#E*0>)EV/=(
MDDQ88)0#+-1"9 2!Z<:B 21KVVONG/%P.O8E'4S;ME@+MQB9"0.?/"X? 3'!
M'/$Z>\#.A+@_N6# [$R@C]KD9UZ>D.+U4N>2T3C9H;*&?3SM<IJ!44$E_ES6
M]]N'+W?7U6/)4D%Y^ZEFE3'9-'_U__96 8)IXF=YAMA%Y 30ZA=.]E'@BC5P
M:K,ZM^+V#_EZ>L@G"5;37QWD"VGNS+S+Z>P LC];DL)T!ISLQ)A^585!';ZW
MB+I^S.#'BJHQ"E:IJ$Z_WE=.[<SQJN7PBM#^C:#KXL<W6CY_*QE!U:;J5Z+
MEI24Z&+#7H+=T7B\O/KE%8X#*N1^D@ /N5E(<?ILVRS)4H20YW/=2#4G'L,*
M.[X8R,[99H<PUUW).B'_^,?W?SAW VZGFX!3G6V?FI8=VLU^GWTQ[].O@>\+
MNC!G-.U0C%D];I9[=O2KS'"%.%NC7!>;_>^5W0JX*$]0C'$,"0$DPZGO3Y!
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
M2)4QB$G@IC@"5!TSC$>C(2"QT*F*BJ9F$JLKI]BWL\JIDRR58OHT XNR"C5
M<R9LSM\F=']?1J7>IXI#IQ0YMDNI5)TYHU5:.!*>0B38)UE(HI3@$*5>G"!O
M6NT((N)/4PA<WPI.(#[Z8/$)Q(1!XD&B?_I3S!UX2;/K@>"'?6[N(.8W=Q_%
M[J8K_V='\P_NWV8%-UU_E\X*T]DX F[NN6X29#A.?#!L#<  0N+S+D!+?[[!
M)H ])&? Y/PYH9J["> ,.9>Z %3YM..Q4'?CM ] #R^2C\W0<T G\#C-4NB2
M+(X#XD(2H,E40D*A/G<I Z8;CTX>',FF(RGJI-1&/VMJ2K-0J]$[I/ KC!B'
M5JJ+H N7E46&#UE5H7\,?E0=U; 4DQQE<9*&"%!+U/1>PQ)7J-5<UL;<VL*
MT<1,H2GJ"S>)<A)C@C]%E>&A;A:E&;D1$!M1-NW4&V$O/I <.5845"=OV.6H
M*^1"+TU $KM^&(4N#N/$&^VA),Q]1=WAM+*,\@S@U+6'ETII]3' HA;]^8C
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
M7;BT<&'3U+/QPCJ_R@%C?W>75C].HE;<W#I^DPD@IY>'!\B- H]"&GH.@4D
M/8SZYED<,JW@8*I1V[G]K?B7$/N\:'2\JR][DMA?B72R?\O@;2':R>I=L[?]
M(2O2[4Z[E,J<3Q25>PYW:*IT"_%1%O\ YORBK$CC)0$V[8F%B*UQLQX+JQW>
M!CQ$U"W=" 3/U0P\K@V0Y?:A&SJ$N)%/$^H%WF$.@$*MURIM89AX^>2P7"K'
M-QEP'ZLU7^AFP?.Y87@"_ S[3XJT9I?980PKI;UV?+80$;9MY?D7;BRRJGQ!
M[-<TW\J&>%E]2K?9)[G1W32?9%]V?Q>3^/9?\J:ZO'A?9/^9I=5AKWS%$,91
MP&.1?4.2>#1,"&O.LA/&8QAI/8QN&8IEP7XG-[]V(C$&+I# -*^9M>P&-9%>
MD ?TM%K" T>T5^!@R1LQ*7E3"UNN0(?_A_CIMA$=634M1/R3R(>$</<_!HGX
MR17XUM@(A)&-.Z].ZG0GO@%WE%,NR/M$WEZ&RD]E[.,+=Z?D6.U.)45$Y%J(
M8 >(9F(499^_E?(?]1&>P^(HC#T>4PH#&L, NTX/SPFA4F'LY* LQP'W#6P$
M0S$]G]XG"B5$2W6'7E X6 &$&4#:<1(B0!,RCJ: QI:#W(/6'"#L:;VI(O\S
M.U;GJJJ%.GA8[='GV[P&^2Z[ U5V+WZOF3/+A<EKZ;.O[8&H:["1'J^//>#;
M;;Z^!:GPLGSZ9"W3@5TIKPR2=R]VX;\4_>&'[ _=9M>7]F%)4,N7)<%&;H'(
M%.+X43*MN"FKYIV^(LN;=S[2&MQFV\V;7?GFKD\R"M$E=U7:K(T>,?UU[,U<
MYOQZKAIJCJZS@-*H6<PN9QZRMM**'E&'3W3I[!%"$CDD#$GL.81Z41"C*'1[
MA#R)E&[WF0.7Y>0"OD%VDPL#GC&=7TSK%/LIQC&EZ',,:=)D688!#]M*-*;U
M], +-9\L+)R$[ZLVQ[@[NCQM7%[+_>M-FTA\V>_ E];Q(L.HVN]>G:0JD^8
M+U)N) TPY]C7E@D8M'QP,F":?0OYP %3BY&+T?<(HN>%(0M]#)G#$]\/>.#1
M'B+UJ6LI(1@/S')&@-YXEC," [XQGA),ZY8)<H*3%*#+"J1-TR4%!IQL+2N8
MUMD3I@7'^'^:%5R+-G:W,Z<%+W)N)B\PY]I7EQ@8-'UX9F":?_.IP0%2AS#_
M^CAY":D7^Q[Q_ 0&3DC]4%YNUR'T6.39R0S&X[*<&'AO?+N)@0'/F,X+IG6*
M_;3@) ?HLP)9A#]55F# P[:2@FD]/6%.<!+]'R0%^?7<.<&+E!M)"<PY]K5E
M! 8M'YP0F&;?0C[00VH1?I)/Z#Z"F#@!C'SD!]"-B,\1\^.HA<B=B,#04D(P
M'ICEC,!_@RUG! 9\8SPEF-8M$^0$QPR@RPD:FZ9+"@PXV5I6,*VS1Z8%4SK=
M1C[P(MEF$@)S/GUU&8%!TX>G!*;Y-U.9?OS7*HC<$+M!3"%.8H9#ZOJL;]X7
M28G.E?/&&M6*Y?K7T9_>P?A9_KG)<G,=;B_'ZUEIU8O%"B7D2ZK[/OYK<(7W
M -I?0RWW$+.TJK8'\Z8T&WI;;+*[(K_.UTU:<;CXXN2P)F6![R81"Z!/7<B0
M2UG2G@1*,$*<*D]P#+1E><[R".'Q'A"=28P)2A7F)1.SJ2=OYXE4>S+<#JL:
M$X&)V1V6VS]F^?[(LBP.3L%]N1,?FJ=;L.T.^OT WVZS*OORX_1*')#W'R2F
M .NLVJ5Y 39YE:V%[HK85%Z+)C+YE:P^SN[NM^6/3/SJG^4MM<U-IG(EL;K+
MJK^ ]$;\<;UKBIR+NKFUH?FM#6C;O)/7.%3RD6^)>%>"^CY;2Q/ -KL10)L7
M!S-9J%S_%7P6&-<=QG1;EP^ EDVU\WU:-3,7T?[QH^I\MV\:&%WB_'(_.#?M
M,-B#%C"3,&E-:6><Z>7[HJ5[T=-_?! C:D>*#?O7/K^70_#X,/W)+6'$$^&6
M)\R/:. 0YB<<MQ<KQPGD@=8EBT8;MAP/>ZQ7H$';CO\#8+U)@%G"U28"LW&M
M%RT?T?R097#$JA8[K4P/=)B\,$6PXI!E3!/LF%9.T*&';)Z(<%M?6,LY7*SU
M.:ON_IY^S^_V=RO7<1'S8I=&)$P\[D<1(0R%*'1B1&CDZ^^4V$!A65*/E]L=
M#F>5UR*O^9K5.^G(0=LE5KRALS<RMR,&;H0<M\I/EV(>+8I?G=X7*?#+H_V-
M!8OQU) -CKD]9JS(P:CG-#<N!I#XXBZ%3<<L8"(QC9W/[C_89U8IAG8?_?8@
M^>V]Q6*.^[;X(&:SA0@JM_G]RH.N!PD+,(>Q0SEM+D?KF@X2C>L.3#5H.3)V
M,$]B87\,>GU8IFBF^QU>#?DU1KE"3)R#;;WPUQ-]A C>7Q_6@MX6X,.\)&N$
MLSG('A:Y='OWV(4K16;.A2/3Q"X@\A@WJ;38$37BB6QG+_3V;VFU^996F9@6
M?BJO=_++OV=W7[)JQ3"/@Y@Y >&$X% ^R.YWC7H0^NK'V\<W93F&] !!C["]
M<JO#"'YO4>KL.QA@5R%H3$NL7KAXRBF9GU.-&#$MM\.BPPO]ML4Y-B2\2,2Y
M8&".P06$ 8/&E%9ZF:%]C-_J['J_?9=?9ZLH#AR?$=]#$,=B'A,%23^)":@
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
M0Q9+1:$'>>@*=0LB[* DP@'OFT 1U*I5TOI@RS+38\DO;,=;VD,^DG!QSW@
M5\L8 \.@/]D3'FS_H*7"%0M]WW=]#GD0.%$$<>+V<Q47^Z&8.,CZM0%+A"]^
MLE9//X#0K+M;/U@@'+$^^#)1 ]8%C7(T:CUPQD5 U<4_9;*6(0<#L5]:[--D
M8/3=^5*#*",^A4$0XS@FF'@LY'V3D'/H&KDU7Z4ARX'Q>,_[O41WU:P49,>+
MWHNIR^0OD75AR!CA>!DCR(PIJA>ZZ_.C.KYX7N2[[%W^-=N\+7:BT^4BF6T'
M=M-HR%V"/7E]&78C$D$7]2OWD$90ZSS_R*:L)Y\]I"X>7QY65LA4B](3\J@7
MMEM@;QIDX(3//IQ/?IKG,E,7A,H0Q<N0*E/&E%:ZH9Y<)5E;R?0Y_7YHZM>R
MZ#+I%8U<[/F11RA&$'IQX"6T;S0A7&LY;F13EN6J1]<=UP$[_2+VL5RJJ=6$
M-.JIU8%!6<I^(E%RC^;DHK_MMOR6BG$F?G9 /:V*76;P@HH9HGX9*F;*F-)*
M]]0\E[B[S:JNN6-;$0YC%!/H><QGG&!$".K;8LC1*F ?UH)ES6I #5KM&$B8
MFD+9YTI/F%J:#HHTD^H\R\H%L1G'XC(T9J0-CT_W&6!$;]UTA8+0C:G'D)^X
M?A"C1"1A_8?'/O;T%TQ?_,A)5DJ'KY"^3(G.TJA1-H:LB<ZQ%/KB&J@R*\L8
MY;J@GUWUU+19=1R?G- @17L_Y&VY%834<BUH]^-84LEYR!A,8NKC.,"$4]?I
MFD=!K'?1HK%&+></[]X2^O;=V\]OV2= ?DW I[^1C^QO[]\E[..G__._0NCB
M?P?L/WY[^_D_]93"'.EJ6C(+WWIJ<WHFK7]55%YQ.U-AMBIC%Z3*..G+$#/S
M9I66.^M@07Q<50ZC /HBB4+<D3F5$R+YY%[;(.(>'RB!NLU8%KW^3,3VB%#S
M*,D8"K4%S29[@R5L_I,EYQE2DZRAM"Y.I 8;<EZ6QG&C6^'^(?TAZ[WZ76^'
M81+"$/L!P]0C3B(/M/2-Q6A0;;MF$Y8%Z%!6?=_"&E:/KDN;XJS,/F.:L[2>
MK [1S+7G#WFY-)$;1^0R9&:L$6<JS4=QHB$OU?[!"?UC>Y[GBH0JC+GG>4GD
MAK!?,$)NC+4.L UOQ;[(2&#]%9JZ2SW#R5/6F0EXTY::AK+G\IS)U>9Y=BX+
MSDA&%Z,Y8^UX*CM&F!D^PUHA%F+A:NX&/DM8X+HP[->V/)80K;K; 1\_R9+R
M^NF\:NRTZF7>ADZGC%(V?AHU]]Q):\ZDS-TR!&6, 2_.D32YT*W*.5P:=]*R
MK 4B0>2Z"0YBD3GQ"!+?C;Q#JS[5.K RMJW74Y<SF$TUE9F22#W).7!X<M?D
M QF:O)#P!:X4:G#&LKP,<3)FS9DJ'#,L:<ZY#HUFI_OT#@R")"8N)4'H8C]*
MJ-.?;_(CFB0#IEW#&IIHYC5<K\;1J#4!L\_@L#G84:BR&4MV+I'T\E1L'+?+
MT"<SICP_(3/!CU:!X*D&'AM$!%'J18['W(!@G"0!\X\-NEJ[7B.:F:14L"B+
M-Z/G:6.X5!.GB6C4DZ:6P8=ITYREA,_R\U(]X3A2EZ%))@QYKK+0!#<#UHA6
M'DV<)(F#R('0(S3Q/-ZO?_L\"K1J#'4^=Y)5(1.K02\SI+T,9)2<P>L_LRW[
MJ*WW*).T#%T8A/S\"H^F]<J7+!Z>FY/E/W%9R.=*LF(M6R0X"EV$68 =[*
M.NQ0 NDCW]=:UAG3CNT*G".T]E[%4W#@S[^6NPRXSE_T]&(4KVKZ,16E>GKR
MF,T'N":^HO(\01<4QP2MRU @(Y8\OH32&#O*C]E?*$ET21"XT*>LW37#GG-(
MAF*"M:Z=']&,97UJWF'ND/5ET%F#4+-0< R3:I(T$8EZBG0*ZD]]I3/9[:K\
MRW[7O,2^*\&'=-;ZP4$ESP;87H90F3#D\:OFIKC12:3*HFFVN8CW_?&A[57$
M?%=,UAP:^8''0\YHU&_L^P0AHIM(#6UG@D2J+$ ML5V!__U7QX'@/JW 5XD3
M--+E_CL@^]UM6<E'X_\-(,>Y<ARGNQFW_;J6<E>_<&GN%<CK6J[,RA^?O&G^
M;\#%SE4(VX]T,;KR':SVD?KYW6!WJ^=W4WA:/[\33O[4.KD!=@7>*[PJ;RW%
M.\/1"RG>6&:7H9Q&+'DFQ3/#CO)&W6:3R]L8TNV'--^\+>+T/M^EVQ,@*\02
M7Q $/<9]C#%"R6&',(A@I#47-="<[4V[ T(AH/GFC5"N=0M2<^O. +&*&WC3
M<JJYC7>D4Z*3@:##)Q]N.^K9Q-MY+U)V:5//'-_+4#*3!CW>X#/-E48!POYN
MOTUWV:99TA<MWHNI7%;4(N-H]QO?E;6L@'A__3G]OH(<0^RX;IAP0CAR/.KU
M5\ %(=?+$TVW;;],H8<+RF9K:WT*&&P%UN;&-GE]SR[]KEW"8-81RE4-L_E
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
M)73+VG!6=>+K%C)#'$RRX:SG$>5+03:;9B,SW7Y(<Z&.<7J?[])M]U)*C-W
MH?*</$X<PB,7NK"],YNY8>QH[1J/:\ERDGT$!R2Z-WD!.GP#WW >R:M:8CP=
MI7H)[1@V[5S;<8FH"]IJAN!E:*0A6QY?PV&0(57-^ICMTKS(-BRM9$UA_ZQ3
MS'$D6J$0)JX7.9[+8-PW1I&OM;(PL G+*M6C CVL@>(TE$ U59J .STY&D";
M%15ZGI@+\C.2R67HSE@C2J.]2T]I'L\6WQ:?=N7ZC]MR*TBKV;_V(CM[4, >
M)S["C$=^%/LQXBS$K$,!8R_2NO3'=-N6M>F9!28@XOXIYC^!%O6H U'&7:(F
M:G-Z0T_M+#C"BAIJ,GI!)FWY9AGZ:<VZ<IH>KOF>TI,V5W'D)'& Q4?'(48H
M<$4+?4.8>)[^29L!C4Q\3(;.L7+UE)8+@VX$A\L85V,,>/PXRU@N5$='7-[=
ME>VX_'2;BI[TMJ[WV69%$M]U4>*'%,<.3$+'X6[7&J(A#/6'R-"6YADG5Z!N
M0$X[7LYP=&'0C&5U&2-GM!6EV;XV(,*T+21[N=C:;@PUBZS-S][?-XNQ['M6
MK?-:X/ "T32%''J^'T+/C5W>SRV01XFO]1"?\=9MY_4":_.\1U-V)QT%:HD3
M[ O1S;JORP8TN!=_J?MPGGEOJ"7T\SI"+Z5O\( 6+&C1=OOZ5WW=0/LK'69P
M #U# J'#Z4OYA17_+$-$+=KW7'9BD<F1PMM*_O- ($T\)T@<[CN1R[F?<-*O
M'Z,H#!,#RCNF^:5)[XMIT&1^&:7!4[E$4X0EJC=?Q,QX T3&<I\5=7LZE%25
M^+VV9.O+#W#Z>WWM'I$SYJM>GJ\.^ES+E9G6Z$4H]07F]:7:A!L7K=5&#%03
M:W-<:JGUQ^R^.Q#X-'2(*.$31(,P8(XK@@).(*&'=AE"_1D6#7D>U=Z 4RBZ
MVV\]NL>*/,/@O4352V/5",T+&IIF['EN)!IDRL3 :V5@15% O=@EQ(W< +,D
M0C[N&PY$UC;@])B!5@>,OP&GP,X/PGD6@5XF;N!HU&1]^<-1UR"-\3B(*_42
MN?Z<:?VY/%/OT@!H<K[3U/!CUEX4DGW*JJ_Y.FO!RJ*_FZ+YE%9'(!?QF]'
M@7$,F>LG#D$];!;&6C=5SP[6\IRHZ05==KT^S<*S[_)KS8O%9F=+N=#O%7E5
M;UIU8AK8E>!1Z2 XE@Y>@7,S,'D IK,2=&;VQUY.#)VZXM"NQRX6+2ZDLRPC
M)"V'CB>EDTL!IA4.D_QKOLF*37VR;2/? 5_%.$(>"6#H!1PYV(7<[;=K/.K'
MP8"L='!;T^2B)T<S-SU2O0 TG$RUP&&7P&$/G_>0KD +JMV[D+<AU[?3BO0Y
M=BZ(ZVA"ER&*X\TH#7<TS4*(_5US?_#7C%U?9^O=^^M?LV]DO2[WS>GH#V)J
ML,[OY3&;5AO?7Y--NU*^0@'Q" R#A,0AP@%TN<=[0&Z,8IULVR(,RWGT,?B
MM 9I=\6A5++=K;R2JMM6$/\FGWX#8OP$;YQ GB(N[S+P.?V>U>"-^.>N2M\P
M8>ON!_A<I45]+9" ]^(C*O$Y:2%^XZMHHJQ^@#__6HKTS,7GCQU/[F@U"5V(
MC_5$]@@:M*BE)P5N< 0.#LB/FQ"-OSOT$]?2#&;Y4KF-?=<M0\ZG,/1QT<Y4
MW*J&A$9U9)9<9;<B41; 6K7ZK:A.'E>7[P&_+Q(!Z6L#OB:5R*2+F]/5I%\S
M88W0N!4)$@PCY'H\CG$H<FGB.H?810.^^II57TK58#$#0!V!.;5%66<$$K _
MX <WP@#P9_ED^E_DFQAKD0" ZVWY#=QFFQMY3U^1M3$F_3ZMO)CG_H+LS.CH
M9<C1G 24BQET9N1+0CO_UODQC3O "Z$;(<Z)XSJ$.RQ&U TZ>+X?$\^,:!F'
M-;-4I;TM;Z[+ZDV=-EF1Z CM^LSRA$N7_P%R9<W%RQ8I>V8K2I-EWDT(TL=L
MO4WK.K_.U\V"Y!$4%SR3]_';#O?[ZR/R UZ.8""/1WA>% @5#1Q&^W5)WT%D
MR/;U?&"GVO5^:(/4(BE)!SG[L]2SOP"I9U+.Y"2^$3'Q>Y>E;3ER-LI/ _5M
MFKZQ?,&;B <-!9S2,R8D4:#)\ILBWE=55JQ_-*MAZ;I!7FR:?VT?V7$ ZX9)
M$,D+?=Q(?,4"SX%1#S9R?&8N8[,(TGK^UF$'ZPX\V!WQGMRAO]!<;3CS Y5M
M E<O7]:F($%#TR;SR8C3UCB* P9C#OTD\KPDCA,_/"BG1Q+=.P8'-*$C)0,O
M"'R5YZM5>5O&N!QCP,OGJ_6X&'N^.F0P86X$>0PII 0QR@^M^2B,=0?%T':F
M&QFO_42U*I/+&"NCK5 \4:W'BOHM23O1@W(QPR1UG>WJ)*_78B*ZK[+/V?<=
M%8;^L2+<"<,(AZZ\,83[29CXD!,_A@X/6))H/4IOHCW+V^M'B*#%J'O)D0%&
MU;:WIR93;Q_["8_@B _\+A&"!N+D=Q>]2-H%S3))^3+TRZA%3^XE,LV6<G:\
MOLTV>[G"P.[NM^6/K*^W;#25/J[*)-O&#>*K]]==+>9_9YMV\R@NZUW]62["
MK3B'W&-)[/$@BCR*$4DBYGF!2.^#$.E5^\^#T':)?V>4G,/W9AWJNL_7@!^-
MDW]X-*\O;6D,%)HA3=2\<VZFCJ FX,OO WJ2/ZO[[<S[;'CHTM1QUAZQC(@T
M,P>/)[ +\(C&G:?E7?9IE^Z:*PW>=4C(][Q>8>*@!&+L(!8Y&(DV">Y;A,@+
M]%:JQ[1D?;E908;H4!FZDO=$?,SNRVH'WN6%R&2ES=/?OWF._8NYZWB?+4,A
MC%CR] Y-0^R,'*U)>9?FQ8J0@*#$1RX-Y2P?^U&0=&UBA[C(R'A5;,OZB#6=
M+%P]'**MF<L8I"T6_6&JZ:I%#U1=6]2&ZB"&7AJLZYOB^^I#56[VZYWL6C*J
M?\T*^4!,<WDY=R!B'D(.<G&04)^Z$/:M>8@K/;,RM@W+D[H.&5@+:'+,52TX
MS0<,1A-Y>4HU)8=ZDZ*>/HD*O)>2-0M]FW*]EZ.E&2J+H/$!HK&]\:^JXBXM
M;"3;A9U@OV#S,U)MBJ5Y1=J8%:79OJ,AS)^RK?C1S2]9D57IEA0;LKG+B[S>
M54TM>-<P]2B-6822&'LXPB)[@Z1OF" <*6NTF>9LK\&U(*_ 30OS"J3%!J0/
MD X1'T-<*\CX]#1K+G.U^$ '$ B$@"R%7PV=GY[G89*OTJ/'ZK\2%^="@5DB
M%Q 5#!M46NMT>C-N,RMX<D[Y5DP]ZE5(:4!#%\=)%+&0\2CP@PYE&/N^UAVW
M4V.S'(7,+_\W4_G&-LTMH,F]KK;YLV2':\;#\=?K/OBS9J:DY&\K"S>&'7-A
MJ6>N+K",Q:'9K"^7,1!UZWV[Y:[W]YD,E<4-68N V9R=^)3=R)\T:]5>[ 44
MN6X8.1YA/ APX+>M^P2Z5//%"S-M6HXU!W3@".^E?1F['"MN_\] KYZR#V'6
M4OVU$E47B[+-DKT,#35NU9/R;1NL*6M>V\(S;7=K_9'+(79P GT6LX10QTWP
M2;-:%T*-;FP6E7MI:\L2KXH"-R6E)I1MEHW"EUBZ)&JF"%Z(FADSY[&,F>5)
M5;_>93?IEF=9O4IXZ$2A[WNA!Y-0G@/C7;V/GS!(B(Y0J7^J945J@(#K3/?5
M&@U:U'3&#B-Z@M*2P2^1844]#K9?D E]?I:A!P-PEV-[QM Z<YX7^2Y[EW_-
M-H_+WIN2OY.*]X0D40AAC!,?8D3=./&:BG<_D2N=6N=I;+1O637(75GMFO6]
MD2=MK'"OF-C,3+OF^MQ)/62+]TT#^*D#NB)K,-OIG '$*E53FW?3,A32JH5G
M*Z%ML:FKNN4E)'R_VU=9IS;-RAUKWYEX!)%3%',_I@PZ'"+'"0(8=!")ER"E
MZH!9@-G>P:EW^9V\\PB<0@4=5O!IOUYGV4;.H'A>KT7N\Y]96@V4\&D<J:?M
MB_.A+=&_ JTUS_MY*1'!A#L40L6D7E]6#)G6]#/!90;^E:/.\QM#QSU.^N/X
M*]W^9K.]V3W[^'Z_JX4]4C(_EMLM+ROYPQ6-XQ R#*GG)0FC,<:$,<_GD0B:
M+G+TI@/S0+1=T3;D9=R9G*488Y;OI\E+  XO[)X8!WZ7YH'.OJDCCQ4G78I!
M\_:*A42CF4EX')>6X),9(M2O^Z8.+PZ)%_A>*)?-" NCP.%ANVK&F BK;G=[
MTJ==6NTF#U&*&'54[[$YR@)(LYN\**1D?6EO80+E$>ALH4O5BY-'+0NN6T3
MN@*M9:\V4K7PIPE2FIW@IXM/NO;;"TV#/#%55/I%_.*N[A^C624DB+G'H,^\
M,/$<1@+N]R!]&+I3SI<TH5F>)S5HLLVTT4;7.].$&HN.F2_.M$8=G_P2P::]
M+EEDE==9+M=&IGY!W:B;+$:=@?WAYP@Y0XTW'&]&^4#K6N3VRLRGK\PW/^S0
ML.]9M<X%TE4<A'[(@Y!Q1A+B>-0-8 ]$( O[-RT40XIY $KJ]/"="LVMGA[*
M#)<J:U%UL;[7&N\+40&+!CYW:;--+J=*'4\"(RDV[/M]7C6?<%0ABGA$$0TC
MZF W9&XBCVQTN#W.8LW!/SM>ZUK1011I2EF!3"*<.N,TX-1IDM")O#E[7GIB
M9W,R^\328[+ZNA+3%UUG,5<UUVT6$KB6PX?AC-:TI^9;YX<X2B)*840A# B#
M;HBZ,XN,NU&B_4K"] CU5_FUWU=@[9ZDS@+_(L5MWN5>54?^'.(UPG[KR[UZ
MGIA!G/Z9Y3>W(M4D7[,JO<GZV<:'*E]G<C?UNMM-Q3YC?@QY&#C$]R@/'>HS
M+W XA%X<0>7*O^4A?QT)X(,-L-YTT-D.>N-!8SWXG7R1E[VL=Z^WG$/1N]/(
MJNFN]M/IKG&"[ FS'5\N3+E7<>R'0113T2V2,";801[LT3L^\F8M*AF%?/Y2
MDROPK3/@3=KI;];K[[VT8;9:E'%=8E$1W&@_>!UA^Z>,U?,':.6>]#\J*JNS
M,D\HUO2:L?A;:^VP7K0 ,0;C$&)(H7R&Q"4B@>@L\"'SS5;13(A[FA*;J:/L
ME(XW%&D7ZG/ST;8>7K[SNF*N.8^.B;LS]*M7$GOG8$8W_L[FO<EB< ]2S8C
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
M(2<LC7I,5%BU[5E1LN'%!T:=$;6KH6IVV!^J_!]%6=P>;C]E#TWYV.=\G7-
M5]M\Z);.@$L"CL)GR'=9%$&:@!8,PRGRI(Z.#$$P7535P'1N6YR.V/_)MOP/
MCO..AZ=#R:><4^[*=VNQM[X5T-LKJ)SLILI5VI:;<M6X3-L"+\FEX$\NL!)Y
M>.NR#K33HW:.L)T_>N S9^=J[)Y15</NLD-V31MY]@HM0YR:$>[WY>6?N__*
MLZH6VRAI$%'DN@1$) 813F /Q\,FI5L"A&'QYD]A;%)\9>@V(;^&F#8OP!?B
M"FF.W6G VZS!1XJUJ;""U]ZB#JN8.4F)E7DUIL5\VN8M()JZD<L2%@'H)A0$
ME+$!$/]$Z@T&@S",Z['G&M9C"<H-*;(9MN?29('^3:CR0+-.79;WW1M59@5#
MIVJS*K>FU)GQAZ?%$^"4!"YE*6743SSB!]0;H@7U)]R/K1.%>6T&9K59@G S
MTFR&ZYF468!_"\(\D*Q1E^4=]S9E6<'.B:JLRJPQ42[NNR"!"/!A@.(8@L2C
M/$!$!'=X$A\'GE%1'HW"O"A[AD5Y/.&&1-D(UW.)LGA_]BV(<D^R3E&6=MP;
M%65Y.Z>*LB*S9D1Y!4@"D@31*/*I3[$?$D1Z$#0)J,Q5X9J'EI)?^8O"SU^
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
MJ,;4)!&K#GP-6617XAI\D>-B ,.000R93UB 8!#3_J5X0J$K=:>\E@'-2YE
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
M,F\WV\E_;W*^O'_]>SY&MXO;M ZBYQIII\MO=^OY59CBWZX7\U0MEX>5)T:
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
M?FL2^.$1<DAW&A"(D!5:&N"8A!BP!TL+<HACKF ;6\97^Q1N7B'C(W>W=QH
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
MDH79 )"V&$,%H=>(AV%5]%0H$'-^.;8JJE69TABJ?47(O*!Z+-+*H$4NM*7
M4<&,.-P&@C7$IES2X/0"9YQ6!+*P\X/44XNT5=H5J!A))Q:\T Q!8@-GJF$^
M@&B%E@)G!!=((T"<T41PB27FJ, !632Q#)#V:!(1.%--!0.@8LN!,RJOQ,:U
M PQ S D! OL#'DB2J%L_!DC)5I@2&3A330-C#9R!&(:Q+)BS*LC%.#>,%%("
M')6&,2Z>Q7&@?.!,-< G%CACA!78A25#>06QLICK0G9,;$QP]  =J5V1K0WL
MQQ<VHP6%SD(/@JGKPT!B1CW(9\3$N-79'JX9N*<1-N,"B"8,1"+R>^H0Q5;:
M@\P8>S[1W([:FJ\<-E,-WS[#9HS"T "'#*$N3*6><LZ+GB+G7US83&G-G0^;
MJ0;MJ,-F.++.<6A0,&DT4(3+8DK&G$?E1@SP$*_/%:LNY@//E'ZZ?,9L<Q5^
MX<(CM[-E;GA4\U,W^.%$$D*< V%:V&]F.:48%&A#SB;FQ&B&>&U65HG5T"C'
MP^-R,J&5-,C>83V5YSZ? ,\,-AYCS0E'BKBPE3H@3ZC$+^E*Z4&,C6;T-/H1
M,JK*7=!I30WA3"D')<8 ,ESH1HJHP+P![J#&-88:5-P8!]7;=7:3KK=W;Y>S
M@,C]HGN3^X$[&D3/?C]ACEC(K#8D6.Z <DR!*;!W!+^H>*P!#)JF%#7&06(/
M7/DP^]SI"O/-=Q."A! *<6.<!A9H0HY.+4(@EB\I]&P @R)606,<#(?5\_$O
MYO/\#N?-V]G=F6BK3ON1>. (-)XP[@/X3@+ W%$7TL046RA_M[>\'RRK]--L
M&XCR?<PTK;?:_O6:0LU*"[7>I<6^\JD5H_M.),:[ *?4U')NE.(,"O"PGS4Q
M.?OE+Q4?]8@8O-+&N*0\6D8?_;+[3=:C7R:4(H.LI)AKKH%1@NKB?$<!C&*&
M2OE[S[\<*N,9)8/5TQA'1\_%M8%V6$(+D1&8!@,OP%O@BR2*2>$;VZWJ0Q@%
M]573%?6K%-=F4!'+-$!.(^6%E](7&01*!7EB#M[&=@]Z77;5!'/@,^$ JVM#
M(ZU!"BMFL,!&@@!U@:\0)*:<6HV;V/LMK]WQ5-BP;CI,'OPK_;B9SU:O5O/?
M9^L\8_LVG6*NH TV.C!(6DN#^BEV'JL]_LA["K%ZF;F"R%-%3$"&22^HQ<Q!
M7J B+7Q)N8*E"1*;*U@-\P$D:+64*X@ E4YPYB0+>T-B'+.NP $"-[':>>W1
M)")7L)H*!D#%EG,% 6=:0.0(]1QAR&E8J.\7Z0 4,C$GN@.D9"M,B<P5K*:!
MKAC9_-WM"$CDM33,"FL=1'EEB4).*\O=^3$)IL6QH,+=[=40GU:Z($'4\&!S
M4&:0I@XX &DANW9P8B&27;&M#>S'ERZHG&+ .\ ]0A!QIO(B<P?Y&!"=UG"?
MT#:N&;BGD2XHI&-06*8<),!#J 4'A<S(VBB_UO H%JWYRNF"U?"M'<[PX&DZ
MDRKXS8,)]TY(HW'8?E()H1-:'=+B .-"3,Q6;%!C68.PCCE%T% MG7%"81LV
M>UAI!G@A*0+E2H6-)\"]SU6J+N8]'O>T7EE;.J"8EAQ:(8C@VB%."B2LT3%'
MU..8OFJ0(J:R=C6\NV)>JY6U&27 ">,P-,CQ,)9E8<-P8'Q,]:$![L);85C#
M&'?%JB%6*G9 (R&,I)@Z*Y1%R-(C4F%]F=9JVPH;.\2_]H:^@4K%2O P03NF
MB!"44R\,/XXI[U!,?,W8<JBJ,J4Q5'L)-GA198JI!SI?+:A2WG!/)7:"!GT0
MR"TIE1(UO= #;<)4!(CEWDJG-&?(\@(50_A$]\1Q!(F^W[L2Y@,X[VTK],!B
M AW P%/G)%-("57@$*;?B56=:H\F,:$'E50P "JV7:;8H[#N"RRE@<9@;F0
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
M/\P^GW9<56DI09XC#B 4UBOE,2":%)D^3/BH=73HQXEMS'.MHM^?*5#)!$@
ML98+;:0QW(BPMZ7^.)5S0*9<I[D%3D4#/)3 Y8B Y8000SU76@#!F0ES.#EN
M0IG54>ND'#BENO1]-0'^ ]VZK4[Z=H_F5;I=S&?]W0#71:G2L%'.H\^-I,B&
M]8,YC7!>;EU 0"24I0(6VY$^-Q[OQ]=RF?V3ZR:GU+N@Y?5MNCFHZX3XI=X/
M?(2.!4XR#[!"PAIJ22$_U"3&-HNR_=M:4IJD1-8^X#TXE<+8?[/> W6Q]U^\
M3=?OKP*ZY9Q+S[V=2(>!8] :B1CP4G&C'E -1NJDG0 MLJYY['O@W+Z;&[7;
M7@5=_&=Z48YK7[^50.R  4Y:"1'PT'E*;"&G"SN\27L NN%8).:]<>O59K.K
MQJO[-Q*+(54&",DT<QPR;% A'Y7 Q(03#-^H[Y)3M?#NC4^53UV^>2V12A/"
MI<X##&GNJ"4:%9(&FV/*U0:[959]T/OS$OV>;=-[$6Z".1D,M=OPJX#.NUS5
M\*354ZVIW")EUB,;MJ$<*T \<RP@0B'@5 L9$X$7555CA,QK&?L.O0%'F#9O
M+O.BZ#Y8-(.XL^38F6H.@&]>2X@0S'//L5#A?PX!H82Q>7HZQ8S)4C$5[4B;
MUV4.W7V[SFX7 5]]]\<FC^@\7GVCYMO%[;V+Z3P&U1M+N#;4>0@<5$1X*[TA
MM$#&<1E3#V[XX0!-,";K6 5=K5)!D(=SE].<>W@N\=@(@"77D%OL)78&^T(6
MZ=V4K\YI4_/?DJPVYMW%F?R_W:&\YH?L73K/PNJ[+T/_T/,/67-37QN?2Q2&
M6GCNPJ8@_*!<V ZPXR0 2,SD.'0W5H=L'H#JNAH4O\X6JUR>-ZO\XH\WEWJW
M6:S2D_/K<Z\DQ"F@$($,<J*(<0:X FXI*=&=3+7RGIRK]%.^D?S0_CT'O7+E
MZT*?S:BF4[OSS4VNZ[QV[:'"^CGK\IL7$DV".%XRJ 0GF "FA2VD@ZR_=-4N
MRJ@-B7Z-J*>[[.F@V&!_Y[T]0;G'CR7:"<$9TEX&.;"30!MR'$82Q]27&;J'
M?U!$BU!*9[O-ZVR]7?SGOHMO+K^NGGMJWWCRQ<0X1Y$QGBN0%[*SU$EYD#:@
M"6-V@$,_$!@4!1M54V>DS#OWZOIFMECG,)JKV?K3R:2SIU](F.=04T9E7FH3
M(BP50X5T7*MNPP)?UA:O$8UTF;*?[A7\Q6C)K^W>EZA3JXNWZ_1ZL;O>E+N
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
M.T2<,#*';_!G"\+K&/RQT?'48K71>X(22C, *8VB@_@SPK1R09S11 _E^O7
MP^YX<R9!S]'(P.Q\ZB0\%:4Y/P^]*1## <9:0R(@55AJM-]"<CIZST,Y?S\!
M0UO228\YN[Z6\T^K\OH_=IJJJL]O]J[(IM;Z9'K\[NKIYB%=R4516F$U%"XZ
M,ICBO>0V+T+E9PMN[@#PP3,EC"-=5WMI$SB4WJ7K5=) @4P<[M8YS#E6FD(H
M:X4E='2_+_'FOIS%L;/<1F+^4:Z*S6\_/<RFJZBK:,V642D?DVK@$>&;OBIH
MP07@T@J#I2)&.L/T!A4-0:H'?%D;9MG<>'G-KUNX![(!&[/U3*K!AO^3M#@_
M8MTL1]_A]@%XX@T67B /D:4:"<$=%E@ EY+LU(HUZ5C^SRENK(Z@FP>#8 (S
MHIRFG F&N%*,5A(Y@@<;UOUF4FI#Y3^,^ R<>[LP7G5R*W1*]U3.T]A6?TV/
MQ?$=;1>$8Y9PYPVD6%.DE2"HDI40-EA<3)^<:JCU0^1I =_>=J:?=]667R?3
M^;%]Z=>>#]!39P#7Z5_*0N:,43O9(-+UG*^WSIT\I;_<H&X!Y@%6L[\7:3U>
M;^FZ?38 S>)*B9JX2(\>DF*IJG(E$X<JZ^[8R*F3J>3#B]2SH.V++NKF9KHI
M;3!+R^9W<S-YF*XFLY/4.=HN& X9B&(2QBU0<3F/8#70H#"@G^K1ET"C-F'N
M+RW3*HI<W%3'>B>Y]'J#8'Q<NP&E$;*02$"@>QPP&M-^#U??,HE:P;<W@W1]
MO?ZZGJ5E\J'TJ:>-4]UW!))2:& LN<2$(0F9,=7*!&'-!RMI]N8XUA7DO:_B
MWL>1\B[^6&OIMG\X8$5E%,Q +Q$R+*Y3A*RD8DKD$&GL,U[;Z[5S0>TQT&U1
M3):%+;;_?C?_<>OC8SF;^7+QYV1Q[.BHX9N"-9;BN'Z15)KH2'HGN*OP,$0.
MYIUWS*LS"/%C#%N'0/=GHU[VN='A1# 26,-XE,,(CO'F E E%5<D*WJH*7T>
M-CG-HXH7JUY/(KNAP<F3BH;8#[!9L#VM?[=<KH]&0AYH$92E$&)+A>8&("L
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
M?)G.-OLA'[8O+VZNYG\4JU3<<FG7Q>?R8ZHU>'5[=7L;V_S:,7RY9Q1]:D2
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
M%Y44JK7-278=;1<L\A0KS04A'AE+@925Q3:.V9PL?(TW<]\JJ]I$^*TEH'(
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
M:4V-AU""R$EOXX#82:04O;P=WV[T??R"=3.0?P6BM'WNK @$AA"%"6+ Q0G
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
MG7R=W!5+E>X_%#<?B]OU_.;J]L.BO%E?KZKZ(!\6T^OB4+;G%MX:  = ,V\
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
M:K)8=<*[#GEQC@/4#/J^2!=7#(N4QL 6VW^_FQ\5Y@C_&KXI<.\ =%Q0[2@
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
MLMS9$E&0=WK;PSVH=IY->R2<CM.D5XM0%097:A\L<)YRICGAWFH-8"J?68K
MV M)Q&^+F$U@WI[S\Q5 TEV'<2)M"R179M\);PL&\@AZ1%Y!8 UC$%L3<9$
M1)72H!RKL+\1)XUQL7D)-*R E:O\A]&_!N/E6J*3X?]9#L:CZ_L43[!>U&M3
MR"J%R>_ORAX=K'KC(*TT4FF*'-*>>@F!YUY1@S %F(E*9[QU9I.4F^W^[L>U
M[VH\G2]G>]>'S#<&0%$T+2&7PE'$$,?I+JD--ASZSA*M?\Y&*X?%:MNK=\%H
M@CG3+J31D_5BG89]<:N&@1 0)*C23BM,E71:.D(8$YI87^W:\K9&_(A+.]*J
MCWY'<$"(N&MI*U@J.1"U>.S+\7OE.RM0W(^5H3([INW@WY96^S"&\7CZSR :
MA\DP_!K%//L5;<#8EP/92=5>$"R*6KSS/!V".N<4!O'/]>BI1/)MLN]DBDQ;
MD$$_&+@S2?N8YD%B;!WWF# 4#04 *';;D5ME.KL8I$'V-<6-HZAW$OQM$>^O
MR=5T/"ZN%J,X][X65\7HU^H ^V#:TOZ& 3''N.,ZSEE)-*!<0U>.%C#4V7VW
MG9/M6#9,&X2]N]7M\W5Y!_;WP>_5@<-AQAWQED L<Y@RI#EE*317:8Y*')@
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
MT1PK*[<4P*:SNT/[7_SHU,G3!SFV-4<^3*+N4:QN14G@?=R,Y$!AA#VM E<
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
M&R6L9'8[;FUH9P%<+9LX)Q"A*L=.!KLG@5N_XJA&\]4]K_/NLZ[K#MJ2F#
M+0'817451M75K MK(FNA@I42!AL:Z0/RFTO-]HWPQ</! "5@')3 4AM@3#KH
MVXS,::(N+(.V#A$_O[ G%]->3.!T(CPK;F/W1[^*#Y/8NO@XG5_</+: 8"@4
MYHA;$XT&;,S&[(S++;&5V-[82)=WRU61GL^+VV*V0R"'@IF.>4V@!+E4A15)
MJAC!@'+A2C2 5YV=0K0^]RO3XOG<;P[MU@+HHNA6'L.DB2SNTPBFD^1 /%21
M85^[((&TTF/I7!RJ85Q+LG$?J81QI2#GLV)6 S1X'FE7(^!M^NL>=?5@8-.K
MSZ=T.4G2;><. J<Q8EK*<FQ"9=7;[B&9:I+S*VZZ7&3;8DV%Z730=U?Y'8%9
M*+GWED..(?<*>E#.1R&PNS!V9?+@^/WO))1[Q+2T<%<YNSOV58'R" !'5I$(
M,C':(K1%A"&?4X.FA_G6K6R1#<N@9ZSTTUD133JSC&*>7-U_GPTF\_&:"L/_
M6JYS.3X5B\_7WP>_\XE[S-<"HY09JI1D FA,*=34E+@::2ZL5DYSM#N-WPV*
MJF=38)L1%X?\[4E&7!-3X)BO!0>=]]C)N-5!8P!64<XEKH[RG+#%\UW>6YL"
M#8JJM2FP[6@<P\?IY"9E<Z[N(KQ:I^>MYO7@:E48OPK)3WE?4)AB@1S!G.&X
M'7LNR[PP);WK+OKVW&G<@C#:(NH^I+ZF"CCS^>K8^>D&Y"/XZK/YL)F@GZ\?
MIF@%,C?VS> 8<]811N-^2#!VP %58LR)RG&P9P8*GSGE^R*R7KA;XE0?3&Y&
MJ1K9?%Y<H+^44F"DQ00**(CSD+)-VHEF4,I*LZBA\^YM%(D?34:+XF,DXO"Y
M.*JGC!]Z2< 28*^L44 *DNXY16@3IJ2Y=.;M^%@J4V)GAGG-6+>6>["[V_K^
MS\%_36<F+7X'_"U'O"4X+K&56D$> 6<<(+HNR)]PL%A>F/>E"8(\STMH#/P>
MD/"A_Y\&=X>3SX]\4R 2(L&\\Q@P#2W24<0E'AR("SL+:H0IU=E8@P3:*S>9
M+LWZL5S=3C2ZN:V06;RK26!Q>#)IHL1:+H4T0MK-"(42JM5B!VTH[8TQX$6%
MR5H STHK'A>K>WJO;B?3\?0F:123M:7R8N0'$XV/?%7PU#A-!26",HD(Y=JS
M<I32DQQ:]? ,KVE2M22&T\D63<YHCT8;=;+26%.W5M>FI3.8V]'/0P2KUCRX
M^&%AE,>><$J]8EAL1\,@;_5JQDM8JQH$OZVM\-,TG83\C--"W<R*BF4V=C<*
M3'JLM"?46: E-"Y*;;LZ1PPO[0RKK>VP-LC[D9ZLI"&>15L(,$*P)H*7?@\M
MK:H6#'L^VUN#9F(.K/W)2680$$>-5+'+7FL!'51EOXG/NC6U1X;:B;+:D89\
M'&;]2D-V3@F..<'>&**AX;@,>M8I^"NG.D$?Y7VLQ'9F'A^'6[\RCZT"G%!O
M-7"2$@(8)& [>DERE,\>+?FUR#P#MQX<ZGVL$+)8I7E@5B*+J.>,:R9Y7"%U
M:>E+6K%<^?D$ '1[EGPJZMWSK5*B<97F04&CDUX.((O++)<(FDW]**VPLCDK
M5(]VI6;(4)EI)^/="^?YQ5T0XZ+."32V'&*B:(IUMF4I"\,YJ^0BJ7C(]2G=
M$A"7M\\_B]GZ=&35F_M]E[U4:QAD"O\ %&NL 4RQI!YN3&!C+<"=V0_=%E:O
M+-MI@V"WM4'$=>7SM9LO1G>#1;%/]7CZ8- < 8042/>)8JL9 -25H^&:Y"@9
M?2V(TP!U:@&W+:J82.HXX.%*7H?7H"K-@D522>B\TE%/-\Q@:LLBRI;F7;7:
M]^(X#="H1JA;4U!?R7S8!-&JR?!1(D2%72_[G='L5(("ACUQZ:P >+.M,6\%
ME#GNPZ./X<^?CFW)H36N#D:S?PW&R[6M.9A<C=*M9Q&DY<JOL![$/EY6:1^<
M-QYAK]/=RX8@S"TIQ^Z@S#+?LPK5G@_M&H"YM3UV,$\7@*8_4M[OK\'XH<N5
M-MLJ[8,WDAH(91QPW 68-UB5%9\=(=)D4(R]O66N"<S;XMO7XJJ(/?XQ+HX@
MV>Y&(:JL" L((4(6 Z0D5;(<)<!957+YVV-6;4"W1:=T)=TD2O2^.IEV-0G6
M"2,L--(*)E)-2%+&$!G/&<G)8Q-OCTHUP=QY?<SJQ*KZBL!%RM'CAL>%&5(K
M9#2+2@24!3D*EWQ[1&L(]K:(]\=T.OQG-!['GC\_WB]_=5#/K_R.H! CC"FL
MG+$ 440-*I4"3P3)4<0@>'O<:PKX]K;/IYU^Y XZ2+J#;8.6Q'C-G /02Z55
M"J!Y&'/655[P#1WW-P5XB^4#)\/!;!@7ZN'R:O'OP6P65^K[@P3;VRX0AH3@
M+DTIPR1AVA%;CI5%.SN'7&_0(5 GV.WY!^[N1JL4\'2\E^*Z(R+%9.O_K>@M
MJ/J2X+TGT!,%.8A+.&'>D<T:;E-)M!P# ;Y)YT%#R+=WEA%-G&41C>;I35R*
MCW)2'6P;D+%:"8VC<AH_CY&)4)9CQEIFQ5Z^0=] W8"W1[)Y$;]U:V/_Q].5
M8;.:+>O;&<LK&8\AW@GO"RFDT2%.9+I%Q1(LH4,E-D*P+#+V_3:[1LC8O!#:
M*T+U]%Z'ZE0\T#(X)@P!!GGN-96>,Z#X=D(*37-(]P;=!O7"W9KU<!OQTH-Y
ML9H>Q62^$N7GGRN!)K/[*J(9;:!T_'/8(WK"VP*4.J$@@%($2@^%\+;$15&<
M<Q47?(,^AN9%T-[I22I.]7WP^QCGP^M-@M%0 *FI\G$:,NFH+Y,#+1129)4G
M>)/>AUIP;HM);C";Q.'/O\3-__8H=>Y R\ L,MIBF":.9=1"R5PY7DORRNR^
M06=#O7"W>%#RO*3>NN-''9-4>D5 CH%TZR8 #J6H8[:MM&>A9C;G&CCT!CT,
M#>&>46YEM3]O0LX_7W\=S?^NRJ7C7A <M\!@"BPU0L%T@LW+31_&P69=C?V&
MW >-HMY:):AB-OHU2&KA$?;E[D9!8.:C"B"<(C3^34<<2U,:$N.SDES?H/>@
M-J3;XI->1C.XF*<[[7Z,)H]C@O?P:7>CP)" U&&FI*+<,4H]! Y+Q+CCV-FL
M,E ]S(%M@$*U@=N+_,-J3[T\D[ZT(K\8(*,PPAY!S0&+VH2-C)#<  .1097V
M\(9VE-%\<',S*V[6QP_7&UD<*NN[KUG@$,9M$W&+M?9QC,I"'T<;57^!M2<7
M4AZE3K&_+"98%[K]J)_$M-96"6T)T7%5=,P@DOI,") *V:PC[/XQHA[QO5HQ
MZ3@@^U,Q"6H5NPH\Q''G(H9AA<RZWS#=TG A5\>=**L=%9..PZQ?%9,(EX([
M2CF4VJYJR%"8^NXI!8*ZK!B1'LK[6(GMK)AT'&[]JICDJ;0B;G9,<\N!%0S*
MI)\Z:(DVBL@<Y?_"9)Z!6VM'#:]O8A\K5$LZU#10S)!-=T@; BF&CGAC-GL@
M01KDN!)[Q)1&U(&&,#[Y('3SW2^#^Q2]D>YF>HT9NQX-UG+#F9' 8^,$D8I@
M$7MI!,&((7(AE?7J%]JT5EQ[<590QMI>FNVOL:><.HZY!W'N>)[6>A7G/+"6
M0-/A!3^;(.>/H\&/T7AUUW$9>WI_R/X_U#3(5'"+,6,E4Q8;2I%BFU''C2TO
M;+-_$[L.\;_,YZH3X7Z< T"FD9'Q_[VA6G@$.+5EGYD@63%$_6-%?2)\]2S@
M.##[<Q:@:1P:HQ8(J#PPGFI$RGX# G-<XSTBP8FRVG$6<!QF_3H+ %:BR')$
MH82&6B>DU9N^>Q(-W@N3][$2VWD6<!QN_3H+<!RF3#NB&%<L*J\:$U/V76';
M69FZ'LH\ [<6JP+LVLBJG =4:1Y(M(0-T! IJA4!$"!4[H5>4YV3DMTCQC2F
M&C2(]<EG \^3*(O9:#I\A2>['PX$,*01AW'Q0\:YJ$/[4GOVUKJL1/VS8L4)
MPIO6C&[#IP3?![\[+%2\C92VH_G5>#I?SHH*9O^>5L$K1QP%$EFLO1=2<;A6
M^0@"%.%*/L_6QGI4T/XKS0+2<<?C45/1C%C")!!F.UK+4&?%R%L()*N%!+L"
M]_.Q;F/:JN%P%;>3"OY=3V=W@SX$\=0_I3&RS"&GL"3&(0@%]S0%=7%+@-2Z
MPS">V%\3I\=H8>(*?Q]%\,]@-CQTB+>[42 ^<@HIC:F&A$<;)')N,U+H'6WU
MFM#F]]U:9#YM"-SV$EC_:SE?UR'PT]FGXI]'AYJSZ23^]6I]C]N!Z[>/>D\
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
M%     @ +8%.3A0\?RGGIP( /WTL !$              ( !     &-G;G@M
M,C Q.#$R,S$N>&UL4$L! A0#%     @ +H%.3FS!B$DS'0  Y%(! !$
M         ( !%J@" &-G;G@M,C Q.#$R,S$N>'-D4$L! A0#%     @ +H%.
M3DZ]?!82.P  3=8" !4              ( !>,4" &-G;G@M,C Q.#$R,S%?
M8V%L+GAM;%!+ 0(4 Q0    ( "Z!3DZI$8E"@)X  $]8"  5
M  "  ;T  P!C9VYX+3(P,3@Q,C,Q7V1E9BYX;6Q02P$"% ,4    "  N@4Y.
M&<(,J5M, 0 2L!$ %0              @ %PGP, 8V=N>"TR,#$X,3(S,5]L
M86(N>&UL4$L! A0#%     @ +H%.3D[C:M)K\P  ZNL, !4
M ( !_NL$ &-G;G@M,C Q.#$R,S%?<')E+GAM;%!+!08     !@ & (H!  "<
%WP4    !

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